summaryrefslogtreecommitdiffstats
path: root/fs/udf
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2010-01-08 16:52:59 +0100
committerJan Kara <jack@suse.cz>2010-03-09 17:15:17 +0100
commit5833ded9b6d783b8446349bada08f0f5e4227895 (patch)
tree6f86b88c0c446b4c62cd38b8cd9f4432331216f6 /fs/udf
parentudf: Fix unalloc space handling in udf_update_inode (diff)
downloadlinux-5833ded9b6d783b8446349bada08f0f5e4227895.tar.xz
linux-5833ded9b6d783b8446349bada08f0f5e4227895.zip
udf: Do not read inode before writing it
We needlessly read inode in udf_update_inode just before zeroing out the contents of the buffer. Fix it. Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf')
-rw-r--r--fs/udf/inode.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/udf/inode.c b/fs/udf/inode.c
index a792a884b49c..a00602b2e32d 100644
--- a/fs/udf/inode.c
+++ b/fs/udf/inode.c
@@ -1408,9 +1408,8 @@ static int udf_update_inode(struct inode *inode, int do_sync)
unsigned char blocksize_bits = inode->i_sb->s_blocksize_bits;
struct udf_inode_info *iinfo = UDF_I(inode);
- bh = udf_tread(inode->i_sb,
- udf_get_lb_pblock(inode->i_sb,
- &iinfo->i_location, 0));
+ bh = udf_tgetblk(inode->i_sb,
+ udf_get_lb_pblock(inode->i_sb, &iinfo->i_location, 0));
if (!bh) {
udf_debug("getblk failure\n");
return -ENOMEM;
@@ -1602,6 +1601,7 @@ static int udf_update_inode(struct inode *inode, int do_sync)
fe->descTag.tagChecksum = udf_tag_checksum(&fe->descTag);
out:
+ set_buffer_uptodate(bh);
unlock_buffer(bh);
/* write the data blocks */