On Tue, 2 Jul 2013, majianpeng wrote: > Now ceph don't support updating atime after read-operation if the open > mode is CEPH_CAP_FILE_RD.There are two reasons: > 1:in client of fs,it don't set dirty cap of CEPH_CAP_FILE_RD. > 2:in mds,it only update the atime if the condition > "dirty & (CEPH_CAP_FILE_EXCL|CEPH_CAP_FILE_WR) is true. > But if we can read, we can update atime. This patch only modify client to > support. Do we awnt to update atime if ret == 0? Otherwise looks good. Please make the changelog only describe the kernel change (in this patch) and not the MDS changes. sage > > Signed-off-by: Jianpeng Ma <majianpeng@xxxxxxxxx> > --- > fs/ceph/file.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/fs/ceph/file.c b/fs/ceph/file.c > index 87df15a..9daea70 100644 > --- a/fs/ceph/file.c > +++ b/fs/ceph/file.c > @@ -672,6 +672,15 @@ again: > out: > dout("aio_read %p %llx.%llx dropping cap refs on %s = %d\n", > inode, ceph_vinop(inode), ceph_cap_string(got), (int)ret); > + > + if (ret >= 0) { > + int dirty; > + spin_lock(&ci->i_ceph_lock); > + dirty = __ceph_mark_dirty_caps(ci, CEPH_CAP_FILE_RD); > + spin_unlock(&ci->i_ceph_lock); > + if (dirty) > + __mark_inode_dirty(inode, dirty); > + } > ceph_put_cap_refs(ci, got); > > if (checkeof && ret >= 0) { > -- > 1.8.1.2 > -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html