X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=fs%2Fudf%2Fnamei.c;h=9737cba1357d754f4b1ea8927af83326865b8e54;hb=4ea7772f828a2f1cf6fbf96a3e6f99ae149d2724;hp=5f6fc17d6bc5c0694fa357b739a290e608da9588;hpb=5f129721713e099a04c6024015f97faa58562ab1;p=~andy%2Flinux diff --git a/fs/udf/namei.c b/fs/udf/namei.c index 5f6fc17d6bc..9737cba1357 100644 --- a/fs/udf/namei.c +++ b/fs/udf/namei.c @@ -1010,6 +1010,7 @@ static int udf_symlink(struct inode *dir, struct dentry *dentry, else udf_truncate_tail_extent(inode); mark_inode_dirty(inode); + up_write(&iinfo->i_data_sem); fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); if (!fi) @@ -1023,7 +1024,6 @@ static int udf_symlink(struct inode *dir, struct dentry *dentry, udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); if (UDF_I(dir)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) mark_inode_dirty(dir); - up_write(&iinfo->i_data_sem); if (fibh.sbh != fibh.ebh) brelse(fibh.ebh); brelse(fibh.sbh);