]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
fs: cifs: Fix atime update check vs mtime
authorDeepa Dinamani <deepa.kernel@gmail.com>
Sat, 30 Nov 2019 05:30:25 +0000 (21:30 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2020 09:20:05 +0000 (10:20 +0100)
commit 69738cfdfa7032f45d9e7462d24490e61cf163dd upstream.

According to the comment in the code and commit log, some apps
expect atime >= mtime; but the introduced code results in
atime==mtime.  Fix the comparison to guard against atime<mtime.

Fixes: 9b9c5bea0b96 ("cifs: do not return atime less than mtime")
Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
Cc: stfrench@microsoft.com
Cc: linux-cifs@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/cifs/inode.c

index df9377828e2f435bdb32339f48c2ad08ac9bdd32..ed59e4a8db59898ffd7d3bcec0aa896734696b5f 100644 (file)
@@ -163,7 +163,7 @@ cifs_fattr_to_inode(struct inode *inode, struct cifs_fattr *fattr)
 
        spin_lock(&inode->i_lock);
        /* we do not want atime to be less than mtime, it broke some apps */
-       if (timespec64_compare(&fattr->cf_atime, &fattr->cf_mtime))
+       if (timespec64_compare(&fattr->cf_atime, &fattr->cf_mtime) < 0)
                inode->i_atime = fattr->cf_mtime;
        else
                inode->i_atime = fattr->cf_atime;