udf: Simplify error handling in udf_file_write_iter()
authorJan Kara <jack@suse.cz>
Thu, 19 Jan 2023 11:44:34 +0000 (12:44 +0100)
committerJan Kara <jack@suse.cz>
Thu, 26 Jan 2023 15:46:34 +0000 (16:46 +0100)
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>
fs/udf/file.c

index 6052481..596d703 100644 (file)
@@ -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);