<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/ceph/mds_client.c, branch linux-3.13.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.13.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.13.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-11-23T19:01:05Z</updated>
<entry>
<title>ceph: wake up 'safe' waiters when unregistering request</title>
<updated>2013-11-23T19:01:05Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-10-31T01:10:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc55d2c9448b34218ca58733a6f51fbede09575b'/>
<id>urn:sha1:fc55d2c9448b34218ca58733a6f51fbede09575b</id>
<content type='text'>
We also need to wake up 'safe' waiters if error occurs or request
aborted. Otherwise sync(2)/fsync(2) may hang forever.

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>ceph: cleanup aborted requests when re-sending requests.</title>
<updated>2013-11-23T19:01:04Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-09-26T06:25:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eb1b8af33c2e42a9a57fc0a7588f4a7b255d2e79'/>
<id>urn:sha1:eb1b8af33c2e42a9a57fc0a7588f4a7b255d2e79</id>
<content type='text'>
Aborted requests usually get cleared when the reply is received.
If MDS crashes, no reply will be received. So we need to cleanup
aborted requests when re-sending requests.

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
Reviewed-by: Greg Farnum &lt;greg@inktank.com&gt;
Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>ceph: handle race between cap reconnect and cap release</title>
<updated>2013-11-23T19:01:02Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-09-22T03:08:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=99a9c273b94a087f8feaec6c5ffbe3205a2dbe51'/>
<id>urn:sha1:99a9c273b94a087f8feaec6c5ffbe3205a2dbe51</id>
<content type='text'>
When a cap get released while composing the cap reconnect message.
We should skip queuing the release message if the cap hasn't been
added to the cap reconnect message.

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: set caps count after composing cap reconnect message</title>
<updated>2013-11-23T19:01:01Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-09-22T02:28:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=44c99757fae80e9db058e1f1d7419cf6472e9af1'/>
<id>urn:sha1:44c99757fae80e9db058e1f1d7419cf6472e9af1</id>
<content type='text'>
It's possible that some caps get released while composing the cap
reconnect message.

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: queue cap release in __ceph_remove_cap()</title>
<updated>2013-11-23T19:00:59Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-09-22T02:15:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a096b09aeec6ff99edfdfd8cee24d6f25377d585'/>
<id>urn:sha1:a096b09aeec6ff99edfdfd8cee24d6f25377d585</id>
<content type='text'>
call __queue_cap_release() in __ceph_remove_cap(), this avoids
acquiring s_cap_lock twice.

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>
<entry>
<title>ceph: remove ceph_lookup_inode()</title>
<updated>2013-09-06T19:55:09Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-09-02T07:19:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ed284c49f61165c3ba1b4e6969d1cc30a769c31b'/>
<id>urn:sha1:ed284c49f61165c3ba1b4e6969d1cc30a769c31b</id>
<content type='text'>
commit 6f60f889 (ceph: fix freeing inode vs removing session caps race)
introduced ceph_lookup_inode(). But there is already a ceph_find_inode()
which provides similar function. So remove ceph_lookup_inode(), use
ceph_find_inode() instead.

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
Reviewed-by: Alex Elder &lt;alex.elder@linary.org&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'linus/master' into testing</title>
<updated>2013-08-15T18:11:45Z</updated>
<author>
<name>Sage Weil</name>
</author>
<published>2013-08-15T18:11:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ee3e542fec6e69bc9fb668698889a37d93950ddf'/>
<id>urn:sha1:ee3e542fec6e69bc9fb668698889a37d93950ddf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ceph: fix freeing inode vs removing session caps race</title>
<updated>2013-08-10T00:55:32Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-07-24T04:22:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6f60f889470aecf747610279545c054a99aadca3'/>
<id>urn:sha1:6f60f889470aecf747610279545c054a99aadca3</id>
<content type='text'>
remove_session_caps() uses iterate_session_caps() to remove caps,
but iterate_session_caps() skips inodes that are being deleted.
So session-&gt;s_nr_caps can be non-zero after iterate_session_caps()
return.

We can fix the issue by waiting until deletions are complete.
__wait_on_freeing_inode() is designed for the job, but it is not
exported, so we use lookup inode function to access it.

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
</content>
</entry>
<entry>
<title>ceph: fix null pointer dereference</title>
<updated>2013-08-10T00:52:58Z</updated>
<author>
<name>Nathaniel Yazdani</name>
</author>
<published>2013-08-05T04:04:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c338c07c51e3106711fad5eb599e375eadb6855d'/>
<id>urn:sha1:c338c07c51e3106711fad5eb599e375eadb6855d</id>
<content type='text'>
When register_session() is given an out-of-range argument for mds,
ceph_mdsmap_get_addr() will return a null pointer, which would be given to
ceph_con_open() &amp; be dereferenced, causing a kernel oops. This fixes bug #4685
in the Ceph bug tracker &lt;http://tracker.ceph.com/issues/4685&gt;.

Signed-off-by: Nathaniel Yazdani &lt;n1ght.4nd.d4y@gmail.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
</feed>
