<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/ceph/super.h, branch linux-3.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-06-06T01:29:53Z</updated>
<entry>
<title>ceph: pre-allocate ceph_cap struct for ceph_add_cap()</title>
<updated>2014-06-06T01:29:53Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2014-04-18T01:57:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d9df2783507943316b305e177e5b1c157200c76f'/>
<id>urn:sha1:d9df2783507943316b305e177e5b1c157200c76f</id>
<content type='text'>
So that ceph_add_cap() can be used while i_ceph_lock is locked.
This simplifies the code that handle cap import/export.

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
</content>
</entry>
<entry>
<title>ceph: clear directory's completeness when creating file</title>
<updated>2014-04-28T19:54:44Z</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=0a8a70f96fe1bd3e07c15bb86fd247e76102398a'/>
<id>urn:sha1:0a8a70f96fe1bd3e07c15bb86fd247e76102398a</id>
<content type='text'>
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;
</content>
</entry>
<entry>
<title>ceph: use fl-&gt;fl_file as owner identifier of flock and posix lock</title>
<updated>2014-04-05T04:07:11Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2014-03-09T15:16:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eb13e832f823f6c110ea53e3067bafe22b87de63'/>
<id>urn:sha1:eb13e832f823f6c110ea53e3067bafe22b87de63</id>
<content type='text'>
flock and posix lock should use fl-&gt;fl_file instead of process ID
as owner identifier. (posix lock uses fl-&gt;fl_owner. fl-&gt;fl_owner
is usually equal to fl-&gt;fl_file, but it also can be a customized
value). The process ID of who holds the lock is just for F_GETLK
fcntl(2).

The fix is rename the 'pid' fields of struct ceph_mds_request_args
and struct ceph_filelock to 'owner', rename 'pid_namespace' fields
to 'pid'. Assign fl-&gt;fl_file to the 'owner' field of lock messages.
We also set the most significant bit of the 'owner' field. MDS can
use that bit to distinguish between old and new clients.

The MDS counterpart of this patch modifies the flock code to not
take the 'pid_namespace' into consideration when checking conflict
locks.

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: fix ceph_dir_llseek()</title>
<updated>2014-04-03T02:33:52Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2014-02-27T08:26:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f0494206076703aaa0c8005eff41c413216ae26b'/>
<id>urn:sha1:f0494206076703aaa0c8005eff41c413216ae26b</id>
<content type='text'>
Comparing offset with inode-&gt;i_sb-&gt;s_maxbytes doesn't make sense for
directory. For a fragmented directory, offset (frag_t, off) can be
larger than inode-&gt;i_sb-&gt;s_maxbytes.

At the very beginning of ceph_dir_llseek(), local variable old_offset
is initialized to parameter offset. This doesn't make sense neither.
Old_offset should be ceph_make_fpos(fi-&gt;frag, fi-&gt;next_offset).

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
Reviewed-by: Alex Elder &lt;elder@linaro.org&gt;
</content>
</entry>
<entry>
<title>ceph: make ceph_forget_all_cached_acls() static inline</title>
<updated>2014-02-17T20:37:12Z</updated>
<author>
<name>Guangliang Zhao</name>
</author>
<published>2014-02-16T16:35:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c969d9bf91e1868d823351993216cd64dfab6a4c'/>
<id>urn:sha1:c969d9bf91e1868d823351993216cd64dfab6a4c</id>
<content type='text'>
Signed-off-by: Guangliang Zhao &lt;lucienchao@gmail.com&gt;
Reviewed-by: Alex Elder &lt;elder@linaro.org&gt;
Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>ceph: remove duplicate declaration of ceph_setattr</title>
<updated>2014-01-30T16:38:00Z</updated>
<author>
<name>Peter Rosin</name>
</author>
<published>2014-01-30T10:33:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=32d35d44d03c502a2fe2cd9ba9b70d5e220da439'/>
<id>urn:sha1:32d35d44d03c502a2fe2cd9ba9b70d5e220da439</id>
<content type='text'>
Signed-off-by: Peter Rosin &lt;peda@lysator.liu.se&gt;
Signed-off-by: Sage Weil &lt;sage@inktank.com&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: check inode caps in ceph_d_revalidate</title>
<updated>2014-01-21T05:29:33Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-11-30T04:47:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9215aeea622fec7ca8123c6bd6f03a1753e2b0b3'/>
<id>urn:sha1:9215aeea622fec7ca8123c6bd6f03a1753e2b0b3</id>
<content type='text'>
Some inodes in readdir reply may have no caps. Getattr mds request
for these inodes can return -ESTALE. The fix is consider dentry that
links to inode with no caps as invalid. Invalid dentry causes a
lookup request to send to the mds, the MDS will send caps back.

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