Patch "fs: cifs: Fix atime update check" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    fs: cifs: Fix atime update check

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     fs-cifs-fix-atime-update-check.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit e07f8d4e04e5a8ceaa94203d1204f4c9df6eddda
Author: Zizhi Wo <wozizhi@xxxxxxxxxx>
Date:   Wed Dec 13 10:23:53 2023 +0800

    fs: cifs: Fix atime update check
    
    [ Upstream commit 01fe654f78fd1ea4df046ef76b07ba92a35f8dbe ]
    
    Commit 9b9c5bea0b96 ("cifs: do not return atime less than mtime") indicates
    that in cifs, if atime is less than mtime, some apps will break.
    Therefore, it introduce a function to compare this two variables in two
    places where atime is updated. If atime is less than mtime, update it to
    mtime.
    
    However, the patch was handled incorrectly, resulting in atime and mtime
    being exactly equal. A previous commit 69738cfdfa70 ("fs: cifs: Fix atime
    update check vs mtime") fixed one place and forgot to fix another. Fix it.
    
    Fixes: 9b9c5bea0b96 ("cifs: do not return atime less than mtime")
    Cc: stable@xxxxxxxxxxxxxxx
    Signed-off-by: Zizhi Wo <wozizhi@xxxxxxxxxx>
    Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/smb/client/file.c b/fs/smb/client/file.c
index cf17e3dd703e6..32a8525415d96 100644
--- a/fs/smb/client/file.c
+++ b/fs/smb/client/file.c
@@ -4671,7 +4671,7 @@ static int cifs_readpage_worker(struct file *file, struct page *page,
 	/* we do not want atime to be less than mtime, it broke some apps */
 	atime = inode_set_atime_to_ts(inode, current_time(inode));
 	mtime = inode_get_mtime(inode);
-	if (timespec64_compare(&atime, &mtime))
+	if (timespec64_compare(&atime, &mtime) < 0)
 		inode_set_atime_to_ts(inode, inode_get_mtime(inode));
 
 	if (PAGE_SIZE > rc)




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux