<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/ceph/inode.c, branch linux-3.14.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.14.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.14.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-04-29T08:31:54Z</updated>
<entry>
<title>move d_rcu from overlapping d_child to overlapping d_alias</title>
<updated>2015-04-29T08:31:54Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-10-26T23:19:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5c48ea64a86415fde0859267a194442d26d2e70c'/>
<id>urn:sha1:5c48ea64a86415fde0859267a194442d26d2e70c</id>
<content type='text'>
commit 946e51f2bf37f1656916eb75bd0742ba33983c28 upstream.

move d_rcu from overlapping d_child to overlapping d_alias

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Ben Hutchings &lt;ben@decadent.org.uk&gt;
[hujianyang: Backported to 3.14 refer to the work of Ben Hutchings in 3.2:
 - Apply name changes in all the different places we use d_alias and d_child
 - Move the WARN_ON() in __d_free() to d_free() as we don't have dentry_free()]
Signed-off-by: hujianyang &lt;hujianyang@huawei.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>ceph: clear directory's completeness when creating file</title>
<updated>2014-06-07T17:28:20Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2014-04-14T05:13:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=600d8cbcd0f10b6535429a21bfb6cf2369155759'/>
<id>urn:sha1:600d8cbcd0f10b6535429a21bfb6cf2369155759</id>
<content type='text'>
commit 0a8a70f96fe1bd3e07c15bb86fd247e76102398a upstream.

When creating a file, ceph_set_dentry_offset() puts the new dentry
at the end of directory's d_subdirs, then set the dentry's offset
based on directory's max offset. The offset does not reflect the
real postion of the dentry in directory. Later readdir reply from
MDS may change the dentry's position/offset. This inconsistency
can cause missing/duplicate entries in readdir result if readdir
is partly satisfied by dcache_readdir().

The fix is clear directory's completeness after creating/renaming
file. It prevents later readdir from using dcache_readdir().

Fixes: http://tracker.ceph.com/issues/8025
Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ceph: fix posix ACL hooks</title>
<updated>2014-01-30T00:05:28Z</updated>
<author>
<name>Sage Weil</name>
</author>
<published>2014-01-29T14:22:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=72466d0b92e04a7e0e5abf74c86eb352225346e4'/>
<id>urn:sha1:72466d0b92e04a7e0e5abf74c86eb352225346e4</id>
<content type='text'>
The merge of commit 7221fe4c2ed7 ("ceph: add acl for cephfs") raced with
upstream changes in the generic POSIX ACL code (eg commit 2aeccbe957d0
"fs: add generic xattr_acl handlers" and others).

Some of the fallout was fixed in commit 4db658ea0ca ("ceph: Fix up after
semantic merge conflict"), but it was incomplete: the set_acl
inode_operation wasn't getting set, and the prototype needed to be
adjusted a bit (it doesn't take a dentry anymore).

Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
Signed-off-by: Ilya Dryomov &lt;ilya.dryomov@inktank.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ceph: Fix up after semantic merge conflict</title>
<updated>2014-01-29T02:06:18Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2014-01-29T02:06:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4db658ea0ca2312b5d168230476ec7729385aefe'/>
<id>urn:sha1:4db658ea0ca2312b5d168230476ec7729385aefe</id>
<content type='text'>
The previous ceph-client merge resulted in ceph not even building,
because there was a merge conflict that wasn't visible as an actual data
conflict: commit 7221fe4c2ed7 ("ceph: add acl for cephfs") added support
for POSIX ACL's into Ceph, but unluckily we also had the VFS tree change
a lot of the POSIX ACL helper functions to be much more helpful to
filesystems (see for example commits 2aeccbe957d0 "fs: add generic
xattr_acl handlers", 5bf3258fd2ac "fs: make posix_acl_chmod more useful"
and 37bc15392a23 "fs: make posix_acl_create more useful")

The reason this conflict wasn't obvious was many-fold: because it was a
semantic conflict rather than a data conflict, it wasn't visible in the
git merge as a conflict.  And because the VFS tree hadn't been in
linux-next, people hadn't become aware of it that way.  And because I
was at jury duty this morning, I was using my laptop and as a result not
doing constant "allmodconfig" builds.

Anyway, this fixes the build and generally removes a fair chunk of the
Ceph POSIX ACL support code, since the improved helpers seem to match
really well for Ceph too.  But I don't actually have any way to *test*
the end result, and I was really hoping for some ACK's for this.  Oh,
well.

Not compiling certainly doesn't make things easier to test, so I'm
committing this without the acks after having waited for four hours...
Plus it's what I would have done for the merge had I noticed the
semantic conflict..

Reported-by: Dave Jones &lt;davej@redhat.com&gt;
Cc: Sage Weil &lt;sage@inktank.com&gt;
Cc: Guangliang Zhao &lt;lucienchao@gmail.com&gt;
Cc: Li Wang &lt;li.wang@ubuntykylin.com&gt;
Cc: Christoph Hellwig &lt;hch@infradead.org&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ceph: add imported caps when handling cap export message</title>
<updated>2014-01-21T08:30:31Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-11-24T06:44:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=11df2dfb610d68e8050c2183c344b1002351a99d'/>
<id>urn:sha1:11df2dfb610d68e8050c2183c344b1002351a99d</id>
<content type='text'>
Version 3 cap export message includes information about the imported
caps. It allows us to add the imported caps if the corresponding cap
import message still hasn't been received.

This allow us to handle situation that the importer MDS crashes and
the cap import message is missing.

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
</content>
</entry>
<entry>
<title>ceph: fix cache revoke race</title>
<updated>2014-01-21T05:29:32Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-11-22T05:50:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9563f88c1fa01341d125e396edc654a8dbcab2d2'/>
<id>urn:sha1:9563f88c1fa01341d125e396edc654a8dbcab2d2</id>
<content type='text'>
handle following sequence of events:

- non-auth MDS revokes Fc cap. queue invalidate work
- auth MDS issues Fc cap through request reply. i_rdcache_gen gets
  increased.
- invalidate work runs. it finds i_rdcache_revoking != i_rdcache_gen,
  so it does nothing.

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
</content>
</entry>
<entry>
<title>ceph: add acl for cephfs</title>
<updated>2013-12-31T18:32:01Z</updated>
<author>
<name>Guangliang Zhao</name>
</author>
<published>2013-11-11T07:18:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7221fe4c2ed72804b28633c8e0217d65abb0023f'/>
<id>urn:sha1:7221fe4c2ed72804b28633c8e0217d65abb0023f</id>
<content type='text'>
Signed-off-by: Guangliang Zhao &lt;lucienchao@gmail.com&gt;
Reviewed-by: Li Wang &lt;li.wang@ubuntykylin.com&gt;
Reviewed-by: Zheng Yan &lt;zheng.z.yan@intel.com&gt;
</content>
</entry>
<entry>
<title>ceph: drop unconnected inodes</title>
<updated>2013-12-13T17:13:16Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-09-20T11:55:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9f12bd119e408388233e7aeb1152f372a8b5dcad'/>
<id>urn:sha1:9f12bd119e408388233e7aeb1152f372a8b5dcad</id>
<content type='text'>
Positve dentry and corresponding inode are always accompanied in MDS reply.
So no need to keep inode in the cache after dropping all its aliases.

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>ceph: initialize inode before instantiating dentry</title>
<updated>2013-12-13T17:11:36Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-12-05T04:38:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=86b58d13134ef14f09f8c8f37797ccc37cf823a3'/>
<id>urn:sha1:86b58d13134ef14f09f8c8f37797ccc37cf823a3</id>
<content type='text'>
commit b18825a7c8 (Put a small type field into struct dentry::d_flags)
put a type field into struct dentry::d_flags. __d_instantiate() set the
field by checking inode-&gt;i_mode. So we should initialize inode before
instantiating dentry when handling mds reply.

Fixes: http://tracker.ceph.com/issues/6930
Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>ceph: handle frag mismatch between readdir request and reply</title>
<updated>2013-09-30T21:49:53Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-09-18T01:44:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=81c6aea5275eae453719d7f3924da07e668265c5'/>
<id>urn:sha1:81c6aea5275eae453719d7f3924da07e668265c5</id>
<content type='text'>
If client has outdated directory fragments information, it may request
readdir an non-existent directory fragment. In this case, the MDS finds
an approximate directory fragment and sends its contents back to the
client. When receiving a reply with fragment that is different than the
requested one, the client need to reset the 'readdir offset'.

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
</feed>
