<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/ceph/mds_client.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:30:00Z</updated>
<entry>
<title>ceph: include time stamp in every MDS request</title>
<updated>2014-06-06T01:30:00Z</updated>
<author>
<name>Sage Weil</name>
</author>
<published>2014-05-22T00:41:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b8e69066d8afa8d2670dc697252ff0e5907aafad'/>
<id>urn:sha1:b8e69066d8afa8d2670dc697252ff0e5907aafad</id>
<content type='text'>
We recently modified the client/MDS protocol to include a timestamp in the
client request.  This allows ctime updates to follow the client's clock
in most cases, which avoids subtle problems when clocks are out of sync
and timestamps are updated sometimes by the MDS clock (for most requests)
and sometimes by the client clock (for cap writeback).

Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>ceph: preallocate buffer for readdir reply</title>
<updated>2014-04-05T04:08:22Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2014-03-29T05:41:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=54008399dc0ce511a07b87f1af3d1f5c791982a4'/>
<id>urn:sha1:54008399dc0ce511a07b87f1af3d1f5c791982a4</id>
<content type='text'>
Preallocate buffer for readdir reply. Limit number of entries in
readdir reply according to the buffer size.

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
</content>
</entry>
<entry>
<title>ceph: add open export target session helper</title>
<updated>2014-01-21T08:30:30Z</updated>
<author>
<name>Yan, Zheng</name>
</author>
<published>2013-11-24T06:33:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5d72d13c425bb41f7752962f168fb402b86b7ac0'/>
<id>urn:sha1:5d72d13c425bb41f7752962f168fb402b86b7ac0</id>
<content type='text'>
Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.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>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client</title>
<updated>2013-03-01T01:43:09Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2013-03-01T01:43:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1cf0209c431fa7790253c532039d53b0773193aa'/>
<id>urn:sha1:1cf0209c431fa7790253c532039d53b0773193aa</id>
<content type='text'>
Pull Ceph updates from Sage Weil:
 "A few groups of patches here.  Alex has been hard at work improving
  the RBD code, layout groundwork for understanding the new formats and
  doing layering.  Most of the infrastructure is now in place for the
  final bits that will come with the next window.

  There are a few changes to the data layout.  Jim Schutt's patch fixes
  some non-ideal CRUSH behavior, and a set of patches from me updates
  the client to speak a newer version of the protocol and implement an
  improved hashing strategy across storage nodes (when the server side
  supports it too).

  A pair of patches from Sam Lang fix the atomicity of open+create
  operations.  Several patches from Yan, Zheng fix various mds/client
  issues that turned up during multi-mds torture tests.

  A final set of patches expose file layouts via virtual xattrs, and
  allow the policies to be set on directories via xattrs as well
  (avoiding the awkward ioctl interface and providing a consistent
  interface for both kernel mount and ceph-fuse users)."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (143 commits)
  libceph: add support for HASHPSPOOL pool flag
  libceph: update osd request/reply encoding
  libceph: calculate placement based on the internal data types
  ceph: update support for PGID64, PGPOOL3, OSDENC protocol features
  ceph: update "ceph_features.h"
  libceph: decode into cpu-native ceph_pg type
  libceph: rename ceph_pg -&gt; ceph_pg_v1
  rbd: pass length, not op for osd completions
  rbd: move rbd_osd_trivial_callback()
  libceph: use a do..while loop in con_work()
  libceph: use a flag to indicate a fault has occurred
  libceph: separate non-locked fault handling
  libceph: encapsulate connection backoff
  libceph: eliminate sparse warnings
  ceph: eliminate sparse warnings in fs code
  rbd: eliminate sparse warnings
  libceph: define connection flag helpers
  rbd: normalize dout() calls
  rbd: barriers are hard
  rbd: ignore zero-length requests
  ...
</content>
</entry>
<entry>
<title>ceph: Convert struct ceph_mds_request to use kuid_t and kgid_t</title>
<updated>2013-02-12T11:19:26Z</updated>
<author>
<name>Eric W. Biederman</name>
</author>
<published>2013-01-31T12:01:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ff3d0046625c1b37df37beb8477135d44dae2823'/>
<id>urn:sha1:ff3d0046625c1b37df37beb8477135d44dae2823</id>
<content type='text'>
Hold the uid and gid for a pending ceph mds request using the types
kuid_t and kgid_t.  When a request message is finally created convert
the kuid_t and kgid_t values into uids and gids in the initial user
namespace.

Cc: Sage Weil &lt;sage@inktank.com&gt;
Signed-off-by: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
</content>
</entry>
<entry>
<title>ceph: Check for created flag in response from mds</title>
<updated>2013-01-17T18:42:36Z</updated>
<author>
<name>Sam Lang</name>
</author>
<published>2012-12-28T17:56:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6e8575faa8fa680d59404a4d58d12190667be815'/>
<id>urn:sha1:6e8575faa8fa680d59404a4d58d12190667be815</id>
<content type='text'>
The mds now sends back a created inode if the create request
performed the create.  If the file already existed, no inode is
returned in the reply.  This allows ceph to set the created flag
in atomic_open so that permissions are properly checked in the case
that the file wasn't created by the create call to the mds.

To ensure compability with previous kernels, a feature for sending
back the inode in the create reply was added, so that the mds will
only send back the inode if the client indicates it supports the
feature.

Signed-off-by: Sam Lang &lt;sam.lang@inktank.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>ceph: define ceph_auth_handshake type</title>
<updated>2012-05-17T13:18:12Z</updated>
<author>
<name>Alex Elder</name>
</author>
<published>2012-05-16T20:16:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6c4a19158b96ea1fb8acbe0c1d5493d9dcd2f147'/>
<id>urn:sha1:6c4a19158b96ea1fb8acbe0c1d5493d9dcd2f147</id>
<content type='text'>
The definitions for the ceph_mds_session and ceph_osd both contain
five fields related only to "authorizers."  Encapsulate those fields
into their own struct type, allowing for better isolation in some
upcoming patches.

Fix the #includes in "linux/ceph/osd_client.h" to lay out their more
complete canonical path.

Signed-off-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>ceph: create a new session lock to avoid lock inversion</title>
<updated>2012-02-02T20:49:19Z</updated>
<author>
<name>Alex Elder</name>
</author>
<published>2012-01-13T01:48:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d8fb02abdc39f92a1066313e2b17047876afa8f9'/>
<id>urn:sha1:d8fb02abdc39f92a1066313e2b17047876afa8f9</id>
<content type='text'>
Lockdep was reporting a possible circular lock dependency in
dentry_lease_is_valid().  That function needs to sample the
session's s_cap_gen and and s_cap_ttl fields coherently, but needs
to do so while holding a dentry lock.  The s_cap_lock field was
being used to protect the two fields, but that can't be taken while
holding a lock on a dentry within the session.

In most cases, the s_cap_gen and s_cap_ttl fields only get operated
on separately.  But in three cases they need to be updated together.
Implement a new lock to protect the spots updating both fields
atomically is required.

Signed-off-by: Alex Elder &lt;elder@dreamhost.com&gt;
Reviewed-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
<entry>
<title>ceph: use i_ceph_lock instead of i_lock</title>
<updated>2011-12-07T18:46:44Z</updated>
<author>
<name>Sage Weil</name>
</author>
<published>2011-11-30T17:47:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=be655596b3de5873f994ddbe205751a5ffb4de39'/>
<id>urn:sha1:be655596b3de5873f994ddbe205751a5ffb4de39</id>
<content type='text'>
We have been using i_lock to protect all kinds of data structures in the
ceph_inode_info struct, including lists of inodes that we need to iterate
over while avoiding races with inode destruction.  That requires grabbing
a reference to the inode with the list lock protected, but igrab() now
takes i_lock to check the inode flags.

Changing the list lock ordering would be a painful process.

However, using a ceph-specific i_ceph_lock in the ceph inode instead of
i_lock is a simple mechanical change and avoids the ordering constraints
imposed by igrab().

Reported-by: Amon Ott &lt;a.ott@m-privacy.de&gt;
Signed-off-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
</feed>
