mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 19:16:02 +02:00
cifs: remove dead size-update blocks in cifs_setattr_unix/nounix
Commit110fee6b9b("smb: client: fix missing timestamp updates with O_TRUNC") introduced cifs_file_set_size(), which calls netfs_resize_file() and cifs_setsize() on success. cifs_setsize() calls i_size_write(), updating i_size to the new value. The subsequent blocks in both cifs_setattr_unix() and cifs_setattr_nounix(): if ((attrs->ia_valid & ATTR_SIZE) && attrs->ia_size != i_size_read(inode)) { truncate_setsize(inode, attrs->ia_size); netfs_resize_file(&cifsInode->netfs, attrs->ia_size, true); fscache_resize_cookie(cifs_inode_cookie(inode), attrs->ia_size); } are therefore unreachable on the success path: attrs->ia_size == i_size_read(inode) always holds after cifs_file_set_size() succeeds. On the failure path, execution jumps to out/cifs_setattr_exit before reaching these blocks. truncate_setsize() and netfs_resize_file() are redundant with what cifs_file_set_size() already did; fscache_resize_cookie() was moved there by commitfa724e235c("cifs: add fscache_resize_cookie() to cifs_setsize()"). Remove both dead blocks. Fixes:110fee6b9b("smb: client: fix missing timestamp updates with O_TRUNC") Signed-off-by: Frank Sorenson <sorenson@redhat.com> Reviewed-by: Huiwen He <hehuiwen@kylinos.cn> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Paulo Alcantara <pc@manguebit.org>
This commit is contained in:
parent
297d8026a5
commit
60be95527b
|
|
@ -3307,13 +3307,6 @@ cifs_setattr_unix(struct dentry *direntry, struct iattr *attrs)
|
|||
if (rc)
|
||||
goto out;
|
||||
|
||||
if ((attrs->ia_valid & ATTR_SIZE) &&
|
||||
attrs->ia_size != i_size_read(inode)) {
|
||||
truncate_setsize(inode, attrs->ia_size);
|
||||
netfs_resize_file(&cifsInode->netfs, attrs->ia_size, true);
|
||||
fscache_resize_cookie(cifs_inode_cookie(inode), attrs->ia_size);
|
||||
}
|
||||
|
||||
setattr_copy(&nop_mnt_idmap, inode, attrs);
|
||||
mark_inode_dirty(inode);
|
||||
|
||||
|
|
@ -3534,13 +3527,6 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
|
|||
if (rc)
|
||||
goto cifs_setattr_exit;
|
||||
|
||||
if ((attrs->ia_valid & ATTR_SIZE) &&
|
||||
attrs->ia_size != i_size_read(inode)) {
|
||||
truncate_setsize(inode, attrs->ia_size);
|
||||
netfs_resize_file(&cifsInode->netfs, attrs->ia_size, true);
|
||||
fscache_resize_cookie(cifs_inode_cookie(inode), attrs->ia_size);
|
||||
}
|
||||
|
||||
setattr_copy(&nop_mnt_idmap, inode, attrs);
|
||||
mark_inode_dirty(inode);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user