Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751693AbdITImB (ORCPT ); Wed, 20 Sep 2017 04:42:01 -0400 Received: from mail-wr0-f182.google.com ([209.85.128.182]:45018 "EHLO mail-wr0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751619AbdITIkR (ORCPT ); Wed, 20 Sep 2017 04:40:17 -0400 X-Google-Smtp-Source: AOwi7QARQTnxc9bGHgxZ5LN8a0sYk7eKi8Rpk/KivuHJ4UphRCo1my5vquLYRrwAFnZdlO2K/77+kw== From: Miklos Szeredi To: linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Al Viro , David Howells , Oleg Drokin , Andreas Dilger , James Simmons Subject: [PATCH 06/10] lustre: honor AT_STATX_DONT_SYNC Date: Wed, 20 Sep 2017 10:40:01 +0200 Message-Id: <1505896805-12055-7-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: 1397 Lines: 40 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: Oleg Drokin Cc: Andreas Dilger Cc: James Simmons --- drivers/staging/lustre/lustre/llite/file.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index be665454f407..decbe5eb0c9d 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -2955,14 +2955,16 @@ int ll_getattr(const struct path *path, struct kstat *stat, struct ll_inode_info *lli = ll_i2info(inode); int res; - res = ll_inode_revalidate(path->dentry, + if (!(flags & AT_STATX_DONT_SYNC)) { + res = ll_inode_revalidate(path->dentry, MDS_INODELOCK_UPDATE | MDS_INODELOCK_LOOKUP); - ll_stats_ops_tally(sbi, LPROC_LL_GETATTR, 1); + ll_stats_ops_tally(sbi, LPROC_LL_GETATTR, 1); - if (res) - return res; + if (res) + return res; - OBD_FAIL_TIMEOUT(OBD_FAIL_GETATTR_DELAY, 30); + OBD_FAIL_TIMEOUT(OBD_FAIL_GETATTR_DELAY, 30); + } stat->dev = inode->i_sb->s_dev; if (ll_need_32bit_api(sbi)) -- 2.5.5