Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751821AbdITInp (ORCPT ); Wed, 20 Sep 2017 04:43:45 -0400 Received: from mail-wm0-f54.google.com ([74.125.82.54]:46346 "EHLO mail-wm0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751457AbdITIkK (ORCPT ); Wed, 20 Sep 2017 04:40:10 -0400 X-Google-Smtp-Source: AOwi7QAZ6T0QooT1APM9wM9OlaoJ0OSzQv+S5i7b2E/8r8fgg9JhFj+ioe9CMORLXYHtIeZjnkFuYw== From: Miklos Szeredi To: linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Al Viro , David Howells , Ilya Dryomov , "Yan, Zheng" , Sage Weil Subject: [PATCH 01/10] ceph: honor AT_STATX_DONT_SYNC Date: Wed, 20 Sep 2017 10:39:56 +0200 Message-Id: <1505896805-12055-2-git-send-email-mszeredi@redhat.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1505896805-12055-1-git-send-email-mszeredi@redhat.com> References: <1505896805-12055-1-git-send-email-mszeredi@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1078 Lines: 32 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 Cc: Ilya Dryomov Cc: "Yan, Zheng" Cc: Sage Weil --- 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