<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/ceph/caps.c, branch linux-4.5.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.5.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.5.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-03-04T20:00:37Z</updated>
<entry>
<title>ceph: initial CEPH_FEATURE_FS_FILE_LAYOUT_V2 support</title>
<updated>2016-03-04T20:00:37Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2016-02-14T10:06:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5ea5c5e0a7f70b256417d3b6e36bd9851504babd'/>
<id>urn:sha1:5ea5c5e0a7f70b256417d3b6e36bd9851504babd</id>
<content type='text'>
Add support for the format change of MClientReply/MclientCaps.
Also add code that denies access to inodes with pool_ns layouts.

Signed-off-by: Yan, Zheng &lt;zyan@redhat.com&gt;
Reviewed-by: Sage Weil &lt;sage@redhat.com&gt;
</content>
</entry>
<entry>
<title>wrappers for -&gt;i_mutex access</title>
<updated>2016-01-22T23:04:28Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2016-01-22T20:40:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5955102c9984fa081b2d570cfac75c97eecf8f3b'/>
<id>urn:sha1:5955102c9984fa081b2d570cfac75c97eecf8f3b</id>
<content type='text'>
parallel to mutex_{lock,unlock,trylock,is_locked,lock_nested},
inode_foo(inode) being mutex_foo(&amp;inode-&gt;i_mutex).

Please, use those for access to -&gt;i_mutex; over the coming cycle
-&gt;i_mutex will become rwsem, with -&gt;lookup() done with it held
only shared.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ceph: make fsync() wait unsafe requests that created/modified inode</title>
<updated>2015-11-02T22:36:48Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2015-10-27T10:36:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=68cd5b4b7612c2956d8553dfb39490b29f32566d'/>
<id>urn:sha1:68cd5b4b7612c2956d8553dfb39490b29f32566d</id>
<content type='text'>
If we get a unsafe reply for request that created/modified inode,
add the unsafe request to a list in the newly created/modified
inode. So we can make fsync() wait these unsafe requests.

Signed-off-by: Yan, Zheng &lt;zyan@redhat.com&gt;
</content>
</entry>
<entry>
<title>ceph: don't invalidate page cache when inode is no longer used</title>
<updated>2015-11-02T22:36:48Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2015-10-26T08:08:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5e804ac4824302efc3038e086cb21f2e93ab8900'/>
<id>urn:sha1:5e804ac4824302efc3038e086cb21f2e93ab8900</id>
<content type='text'>
ceph_check_caps() invalidate page cache when inode is not used
by any open file. This behaviour is not friendly for workload
that repeatly read files.

Signed-off-by: Yan, Zheng &lt;zyan@redhat.com&gt;
</content>
</entry>
<entry>
<title>ceph: EIO all operations after forced umount</title>
<updated>2015-09-08T20:14:28Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2015-07-01T08:27:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=48fec5d0a504dfbb302cb1dd24ebb0b82a46cce9'/>
<id>urn:sha1:48fec5d0a504dfbb302cb1dd24ebb0b82a46cce9</id>
<content type='text'>
This patch makes try_get_cap_refs() and __do_request() check
if the file system was forced umount, and return -EIO if it was.
This patch also adds a helper function to drops dirty caps and
wakes up blocking operation.

Signed-off-by: Yan, Zheng &lt;zyan@redhat.com&gt;
</content>
</entry>
<entry>
<title>ceph: always re-send cap flushes when MDS recovers</title>
<updated>2015-07-31T08:38:53Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2015-07-20T01:50:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc927cd32feca2acefd90a4ac317fa4f0a2e5955'/>
<id>urn:sha1:fc927cd32feca2acefd90a4ac317fa4f0a2e5955</id>
<content type='text'>
commit e548e9b93d3e565e42b938a99804114565be1f81 makes the kclient
only re-send cap flush once during MDS failover. If the kclient sends
a cap flush after MDS enters reconnect stage but before MDS recovers.
The kclient will skip re-sending the same cap flush when MDS recovers.

This causes problem for newly created inode. The MDS handles cap
flushes before replaying unsafe requests, so it's possible that MDS
find corresponding inode is missing when handling cap flush. The fix
is reverting to old behaviour: always re-send when MDS recovers

Signed-off-by: Yan, Zheng &lt;zyan@redhat.com&gt;
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
</content>
</entry>
<entry>
<title>ceph: rework dcache readdir</title>
<updated>2015-06-25T08:49:32Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2015-06-16T12:48:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fdd4e15838e59c394a1ec4963b57c22c12608685'/>
<id>urn:sha1:fdd4e15838e59c394a1ec4963b57c22c12608685</id>
<content type='text'>
Previously our dcache readdir code relies on that child dentries in
directory dentry's d_subdir list are sorted by dentry's offset in
descending order. When adding dentries to the dcache, if a dentry
already exists, our readdir code moves it to head of directory
dentry's d_subdir list. This design relies on dcache internals.
Al Viro suggests using ncpfs's approach: keeping array of pointers
to dentries in page cache of directory inode. the validity of those
pointers are presented by directory inode's complete and ordered
flags. When a dentry gets pruned, we clear directory inode's complete
flag in the d_prune() callback. Before moving a dentry to other
directory, we clear the ordered flag for both old and new directory.

Signed-off-by: Yan, Zheng &lt;zyan@redhat.com&gt;
</content>
</entry>
<entry>
<title>ceph: pre-allocate data structure that tracks caps flushing</title>
<updated>2015-06-25T08:49:31Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2015-06-10T09:26:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f66fd9f0952187d274c13c136b74548f792c1925'/>
<id>urn:sha1:f66fd9f0952187d274c13c136b74548f792c1925</id>
<content type='text'>
Signed-off-by: Yan, Zheng &lt;zyan@redhat.com&gt;
</content>
</entry>
<entry>
<title>ceph: re-send flushing caps (which are revoked) in reconnect stage</title>
<updated>2015-06-25T08:49:31Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2015-06-10T07:17:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e548e9b93d3e565e42b938a99804114565be1f81'/>
<id>urn:sha1:e548e9b93d3e565e42b938a99804114565be1f81</id>
<content type='text'>
if flushing caps were revoked, we should re-send the cap flush in
client reconnect stage. This guarantees that MDS processes the cap
flush message before issuing the flushing caps to other client.

Signed-off-by: Yan, Zheng &lt;zyan@redhat.com&gt;
</content>
</entry>
<entry>
<title>ceph: send TID of the oldest pending caps flush to MDS</title>
<updated>2015-06-25T08:49:31Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2015-06-10T03:09:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a2971c8ccb9bd7677a6c43cdbed9aacfef5e9f26'/>
<id>urn:sha1:a2971c8ccb9bd7677a6c43cdbed9aacfef5e9f26</id>
<content type='text'>
According to this information, MDS can trim its completed caps flush
list (which is used to detect duplicated cap flush).

Signed-off-by: Yan, Zheng &lt;zyan@redhat.com&gt;
</content>
</entry>
</feed>
