summaryrefslogtreecommitdiffstats
path: root/fs/udf/file.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2023-01-19 12:44:34 +0100
committerJan Kara <jack@suse.cz>2023-01-26 16:46:34 +0100
commit96eeaaaea592079fcbf0b18a2b6f99165b32c942 (patch)
tree84cae3c722c345d7bccadfcbea33ff8d7d2c49fb /fs/udf/file.c
parent2d532616c768c7473b7ebcf39aa16c824c73b7fc (diff)
downloadlinux-stable-96eeaaaea592079fcbf0b18a2b6f99165b32c942.tar.gz
linux-stable-96eeaaaea592079fcbf0b18a2b6f99165b32c942.tar.bz2
linux-stable-96eeaaaea592079fcbf0b18a2b6f99165b32c942.zip
udf: Simplify error handling in udf_file_write_iter()
When udf_expand_file_adinicb() fails, we can now use the standard exit path instead of implementing our own. Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf/file.c')
-rw-r--r--fs/udf/file.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/udf/file.c b/fs/udf/file.c
index 60524814c594..596d703fb6c8 100644
--- a/fs/udf/file.c
+++ b/fs/udf/file.c
@@ -140,7 +140,6 @@ static ssize_t udf_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
struct file *file = iocb->ki_filp;
struct inode *inode = file_inode(file);
struct udf_inode_info *iinfo = UDF_I(inode);
- int err;
inode_lock(inode);
@@ -151,12 +150,9 @@ static ssize_t udf_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB &&
inode->i_sb->s_blocksize < (udf_file_entry_alloc_offset(inode) +
iocb->ki_pos + iov_iter_count(from))) {
- err = udf_expand_file_adinicb(inode);
- if (err) {
- inode_unlock(inode);
- udf_debug("udf_expand_adinicb: err=%d\n", err);
- return err;
- }
+ retval = udf_expand_file_adinicb(inode);
+ if (retval)
+ goto out;
}
retval = __generic_file_write_iter(iocb, from);