Re: [PATCH v2 8/8] cifs: update the ctime on a partial page write

Tom Talpey
2023-06-12T13:41:56Z

On 6/12/2023 6:45 AM, Jeff Layton wrote:
> POSIX says:
>
> "Upon successful completion, where nbyte is greater than 0, write()
> shall mark for update the last data modification and last file status
> change timestamps of the file..."
>
> Add the missing ctime update.
>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
> fs/smb/client/file.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/smb/client/file.c b/fs/smb/client/file.c
> index df88b8c04d03..a00038a326cf 100644
> --- a/fs/smb/client/file.c
> +++ b/fs/smb/client/file.c
> @@ -2596,7 +2596,7 @@ static int cifs_partialpagewrite(struct page *page, unsigned from, unsigned to)
> write_data, to - from, &offset);
> cifsFileInfo_put(open_file);
> /* Does mm or vfs already set times? */
> - inode->i_atime = inode->i_mtime = current_time(inode);
> + inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);

Question. It appears that roughly half the filesystems in this series
don't touch the i_atime in this case. And the other half do. Which is
correct? Did they incorrectly set i_atime instead of i_ctime?

Tom.

> if ((bytes_written > 0) && (offset))
> rc = 0;
> else if (bytes_written < 0)