The description of this flag says "Don't sync attributes with the server". In other words: always use the attributes cached in the kernel and don't send network or local messages to refresh the attributes. Signed-off-by: Miklos Szeredi <mszeredi@xxxxxxxxxx> Cc: Ilya Dryomov <idryomov@xxxxxxxxx> Cc: "Yan, Zheng" <zyan@xxxxxxxxxx> Cc: Sage Weil <sage@xxxxxxxxxx> --- fs/ceph/inode.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index 373dab5173ca..723002f6b060 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c @@ -2201,9 +2201,11 @@ int ceph_getattr(const struct path *path, struct kstat *stat, { struct inode *inode = d_inode(path->dentry); struct ceph_inode_info *ci = ceph_inode(inode); - int err; + int err = 0; + + if (!(flags & AT_STATX_DONT_SYNC)) + err = ceph_do_getattr(inode, CEPH_STAT_CAP_INODE_ALL, false); - err = ceph_do_getattr(inode, CEPH_STAT_CAP_INODE_ALL, false); if (!err) { generic_fillattr(inode, stat); stat->ino = ceph_translate_ino(inode->i_sb, inode->i_ino); -- 2.5.5