From: Sage Weil Date: Wed, 4 Mar 2009 22:14:22 +0000 (-0800) Subject: kclient: be more careful about putting cap on rdcaps in ceph_add_cap() X-Git-Tag: v0.7~34^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=30394f1187da8b2f28e11476da0f0329330aa3c9;p=ceph.git kclient: be more careful about putting cap on rdcaps in ceph_add_cap() Namely, remove it if it doesn't belong there anymore. This needs to happen when we release caps, too... --- diff --git a/src/kernel/caps.c b/src/kernel/caps.c index 64b9059b0e0f2..5f5b92f210997 100644 --- a/src/kernel/caps.c +++ b/src/kernel/caps.c @@ -227,12 +227,13 @@ retry: session->s_nr_caps++; INIT_LIST_HEAD(&cap->session_rdcaps); } - if ((cap->issued & ~CEPH_CAP_EXPIREABLE) == 0) { - /* move to tail of session rdcaps lru */ - if (!list_empty(&cap->session_rdcaps)) - list_del(&cap->session_rdcaps); + + /* move to tail of session rdcaps lru? */ + if (!list_empty(&cap->session_rdcaps)) + list_del(&cap->session_rdcaps); + if ((cap->issued & ~CEPH_CAP_EXPIREABLE) == 0) list_add_tail(&cap->session_rdcaps, &session->s_rdcaps); - } + if (!ci->i_snap_realm) { struct ceph_snap_realm *realm = ceph_get_snap_realm(mdsc, realmino);