<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/ceph/super.h, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-11-08T15:29:05Z</updated>
<entry>
<title>ceph: fix rdcache_gen usage and invalidate</title>
<updated>2010-11-08T15:29:05Z</updated>
<author>
<name>Sage Weil</name>
</author>
<published>2010-11-04T18:05:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cd045cb42a266882ac24bc21a3a8d03683c72954'/>
<id>urn:sha1:cd045cb42a266882ac24bc21a3a8d03683c72954</id>
<content type='text'>
We used to use rdcache_gen to indicate whether we "might" have cached
pages.  Now we just look at the mapping to determine that.  However, some
old behavior remains from that transition.

First, rdcache_gen == 0 no longer means we have no pages.  That can happen
at any time (presumably when we carry FILE_CACHE).  We should not reset it
to zero, and we should not check that it is zero.

That means that the only purpose for rdcache_revoking is to resolve races
between new issues of FILE_CACHE and an async invalidate.  If they are
equal, we should invalidate.  On success, we decrement rdcache_revoking,
so that it is no longer equal to rdcache_gen.  Similarly, if we success
in doing a sync invalidate, set revoking = gen - 1.  (This is a small
optimization to avoid doing unnecessary invalidate work and does not
affect correctness.)

Signed-off-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
<entry>
<title>ceph: do not carry i_lock for readdir from dcache</title>
<updated>2010-10-20T22:38:27Z</updated>
<author>
<name>Sage Weil</name>
</author>
<published>2010-10-18T21:04:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=efa4c1206eaff047c474af2136748a58eb8cc33b'/>
<id>urn:sha1:efa4c1206eaff047c474af2136748a58eb8cc33b</id>
<content type='text'>
We were taking dcache_lock inside of i_lock, which introduces a dependency
not found elsewhere in the kernel, complicationg the vfs locking
scalability work.  Since we don't actually need it here anyway, remove
it.

We only need i_lock to test for the I_COMPLETE flag, so be careful to do
so without dcache_lock held.

Signed-off-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
<entry>
<title>ceph: factor out libceph from Ceph file system</title>
<updated>2010-10-20T22:37:28Z</updated>
<author>
<name>Yehuda Sadeh</name>
</author>
<published>2010-04-06T22:14:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3d14c5d2b6e15c21d8e5467dc62d33127c23a644'/>
<id>urn:sha1:3d14c5d2b6e15c21d8e5467dc62d33127c23a644</id>
<content type='text'>
This factors out protocol and low-level storage parts of ceph into a
separate libceph module living in net/ceph and include/linux/ceph.  This
is mostly a matter of moving files around.  However, a few key pieces
of the interface change as well:

 - ceph_client becomes ceph_fs_client and ceph_client, where the latter
   captures the mon and osd clients, and the fs_client gets the mds client
   and file system specific pieces.
 - Mount option parsing and debugfs setup is correspondingly broken into
   two pieces.
 - The mon client gets a generic handler callback for otherwise unknown
   messages (mds map, in this case).
 - The basic supported/required feature bits can be expanded (and are by
   ceph_fs_client).

No functional change, aside from some subtle error handling cases that got
cleaned up in the refactoring process.

Signed-off-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
<entry>
<title>ceph: only send one flushsnap per cap_snap per mds session</title>
<updated>2010-09-17T15:03:08Z</updated>
<author>
<name>Sage Weil</name>
</author>
<published>2010-09-17T15:03:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e835124c2be289515b918f2688ced4249e2de566'/>
<id>urn:sha1:e835124c2be289515b918f2688ced4249e2de566</id>
<content type='text'>
Sending multiple flushsnap messages is problematic because we ignore
the response if the tid doesn't match, and the server may only respond to
each one once.  It's also a waste.

So, skip cap_snaps that are already on the flushing list, unless the caller
tells us to resend (because we are reconnecting).

Signed-off-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
<entry>
<title>ceph: fix cap_snap and realm split</title>
<updated>2010-09-16T23:26:51Z</updated>
<author>
<name>Sage Weil</name>
</author>
<published>2010-09-16T23:26:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ae00d4f37f4df56821331deb1028748110dd6dc9'/>
<id>urn:sha1:ae00d4f37f4df56821331deb1028748110dd6dc9</id>
<content type='text'>
The cap_snap creation/queueing relies on both the current i_head_snapc
_and_ the i_snap_realm pointers being correct, so that the new cap_snap
can properly reference the old context and the new i_head_snapc can be
updated to reference the new snaprealm's context.  To fix this, we:

 - move inodes completely to the new (split) realm so that i_snap_realm
   is correct, and
 - generate the new snapc's _before_ queueing the cap_snaps in
   ceph_update_snap_trace().

Signed-off-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
<entry>
<title>ceph: maintain i_head_snapc when any caps are dirty, not just for data</title>
<updated>2010-08-24T23:24:18Z</updated>
<author>
<name>Sage Weil</name>
</author>
<published>2010-08-24T15:44:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7d8cb26d7dcb911f110b7762bd5941e8f009d6c3'/>
<id>urn:sha1:7d8cb26d7dcb911f110b7762bd5941e8f009d6c3</id>
<content type='text'>
We used to use i_head_snapc to keep track of which snapc the current epoch
of dirty data was dirtied under.  It is used by queue_cap_snap to set up
the cap_snap.  However, since we queue cap snaps for any dirty caps, not
just for dirty file data, we need to keep a valid i_head_snapc anytime
we have dirty|flushing caps.  This fixes a NULL pointer deref in
queue_cap_snap when writing back dirty caps without data (e.g.,
snaptest-authwb.sh).

Signed-off-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
<entry>
<title>ceph: include dirty xattrs state in snapped caps</title>
<updated>2010-08-22T22:16:46Z</updated>
<author>
<name>Sage Weil</name>
</author>
<published>2010-08-22T22:03:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4a625be47243e0e07dedd0a1a6b94c66c2ab93ba'/>
<id>urn:sha1:4a625be47243e0e07dedd0a1a6b94c66c2ab93ba</id>
<content type='text'>
When we snapshot dirty metadata that needs to be written back to the MDS,
include dirty xattr metadata.  Make the capsnap reference the encoded
xattr blob so that it will be written back in the FLUSHSNAP op.

Also fix the capsnap creation guard to include dirty auth or file bits,
not just tests specific to dirty file data or file writes in progress
(this fixes auth metadata writeback).

Signed-off-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
<entry>
<title>ceph: constify dentry_operations</title>
<updated>2010-08-03T17:25:30Z</updated>
<author>
<name>Sage Weil</name>
</author>
<published>2010-08-03T17:25:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=52dfb8ac0ef41168c1a10590b7259a5ab1cd2ab7'/>
<id>urn:sha1:52dfb8ac0ef41168c1a10590b7259a5ab1cd2ab7</id>
<content type='text'>
This makes checkpatch happy.

Signed-off-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
<entry>
<title>ceph: add flock/fcntl lock support</title>
<updated>2010-08-02T23:10:53Z</updated>
<author>
<name>Greg Farnum</name>
</author>
<published>2010-08-02T22:34:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=40819f6fb227c1832935b775ac22aef10aa6f6dd'/>
<id>urn:sha1:40819f6fb227c1832935b775ac22aef10aa6f6dd</id>
<content type='text'>
Implement flock inode operation to support advisory file locking.  All
lock/unlock operations are synchronous with the MDS.  Lock state is
sent when reconnecting to a recovering MDS to restore the shared lock
state.

Signed-off-by: Greg Farnum &lt;gregf@hq.newdream.net&gt;
Signed-off-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
<entry>
<title>ceph: add CEPH_FEATURE_FLOCK to the supported feature bits</title>
<updated>2010-08-02T22:48:51Z</updated>
<author>
<name>Greg Farnum</name>
</author>
<published>2010-08-02T21:55:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c6f3fdc592d61847da0e2172e352dbcb53c83d39'/>
<id>urn:sha1:c6f3fdc592d61847da0e2172e352dbcb53c83d39</id>
<content type='text'>
This informs the server that we will accept v2 client_caps format and v2
client_reconnect format messages.

Signed-off-by: Greg Farnum &lt;gregf@hq.newdream.net&gt;
Signed-off-by: Sage Weil &lt;sage@newdream.net&gt;
</content>
</entry>
</feed>
