Commit 2d532616 authored by Jan Kara's avatar Jan Kara

udf: Push i_data_sem locking into udf_extend_file()

Push i_data_sem locking into udf_extend_file(). It somewhat simplifies
the code around it.
Signed-off-by: default avatarJan Kara <jack@suse.cz>
parent 6a3b37e0
...@@ -555,6 +555,7 @@ static int udf_extend_file(struct inode *inode, loff_t newsize) ...@@ -555,6 +555,7 @@ static int udf_extend_file(struct inode *inode, loff_t newsize)
else else
BUG(); BUG();
down_write(&iinfo->i_data_sem);
/* /*
* When creating hole in file, just don't bother with preserving * When creating hole in file, just don't bother with preserving
* preallocation. It likely won't be very useful anyway. * preallocation. It likely won't be very useful anyway.
...@@ -599,6 +600,7 @@ static int udf_extend_file(struct inode *inode, loff_t newsize) ...@@ -599,6 +600,7 @@ static int udf_extend_file(struct inode *inode, loff_t newsize)
err = 0; err = 0;
out: out:
brelse(epos.bh); brelse(epos.bh);
up_write(&iinfo->i_data_sem);
return err; return err;
} }
...@@ -1160,20 +1162,17 @@ int udf_setsize(struct inode *inode, loff_t newsize) ...@@ -1160,20 +1162,17 @@ int udf_setsize(struct inode *inode, loff_t newsize)
(udf_file_entry_alloc_offset(inode) + newsize)) { (udf_file_entry_alloc_offset(inode) + newsize)) {
down_write(&iinfo->i_data_sem); down_write(&iinfo->i_data_sem);
iinfo->i_lenAlloc = newsize; iinfo->i_lenAlloc = newsize;
up_write(&iinfo->i_data_sem);
goto set_size; goto set_size;
} }
err = udf_expand_file_adinicb(inode); err = udf_expand_file_adinicb(inode);
if (err) if (err)
return err; return err;
} }
down_write(&iinfo->i_data_sem);
err = udf_extend_file(inode, newsize); err = udf_extend_file(inode, newsize);
if (err) { if (err)
up_write(&iinfo->i_data_sem);
return err; return err;
}
set_size: set_size:
up_write(&iinfo->i_data_sem);
truncate_setsize(inode, newsize); truncate_setsize(inode, newsize);
} else { } else {
if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment