The patch below does not apply to the 5.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to [off-list ref].
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 4f22262280ccb5c0a18a42029313938aabfaff12 Mon Sep 17 00:00:00 2001
From: Steve French <redacted>
Date: Thu, 23 Sep 2021 12:42:35 -0500
Subject: [PATCH] cifs: Clear modified attribute bit from inode flags
Clear CIFS_INO_MODIFIED_ATTR bit from inode flags after
updating mtime and ctime
Signed-off-by: Rohith Surabattula <redacted>
Reviewed-by: Paulo Alcantara (SUSE) <redacted>
Acked-by: Ronnie Sahlberg <redacted>
Cc: stable@vger.kernel.org # 5.13+
Signed-off-by: Steve French <redacted>
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 0ab5bb24b8ca..13f3182cf796 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -884,7 +884,7 @@ int cifs_close(struct inode *inode, struct file *file)
cinode->lease_granted &&
!test_bit(CIFS_INO_CLOSE_ON_LOCK, &cinode->flags) &&
dclose) {
- if (test_bit(CIFS_INO_MODIFIED_ATTR, &cinode->flags)) {
+ if (test_and_clear_bit(CIFS_INO_MODIFIED_ATTR, &cinode->flags)) {
inode->i_ctime = inode->i_mtime = current_time(inode);
cifs_fscache_update_inode_cookie(inode);
}