mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:02:20 +00:00
cifs: Fix missing error code set
In cifs_strict_readv(), the default rc (-EACCES) is accidentally cleared by
a successful return from netfs_start_io_direct(), such that if
cifs_find_lock_conflict() fails, we don't return an error.
Fix this by resetting the default error code.
Fixes: 14b1cd2534
("cifs: Fix locking in cifs_strict_readv()")
Cc: stable@vger.kernel.org
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: linux-cifs@vger.kernel.org
cc: netfs@lists.linux.dev
cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
de40579b90
commit
d2c5eb57b6
@ -2877,6 +2877,7 @@ cifs_strict_readv(struct kiocb *iocb, struct iov_iter *to)
|
||||
rc = netfs_start_io_direct(inode);
|
||||
if (rc < 0)
|
||||
goto out;
|
||||
rc = -EACCES;
|
||||
down_read(&cinode->lock_sem);
|
||||
if (!cifs_find_lock_conflict(
|
||||
cfile, iocb->ki_pos, iov_iter_count(to),
|
||||
@ -2889,6 +2890,7 @@ cifs_strict_readv(struct kiocb *iocb, struct iov_iter *to)
|
||||
rc = netfs_start_io_read(inode);
|
||||
if (rc < 0)
|
||||
goto out;
|
||||
rc = -EACCES;
|
||||
down_read(&cinode->lock_sem);
|
||||
if (!cifs_find_lock_conflict(
|
||||
cfile, iocb->ki_pos, iov_iter_count(to),
|
||||
|
Loading…
Reference in New Issue
Block a user