diff options
Diffstat (limited to 'fs/udf/ialloc.c')
-rw-r--r-- | fs/udf/ialloc.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c index eb9cfa23dc3d..c4943c8988c2 100644 --- a/fs/udf/ialloc.c +++ b/fs/udf/ialloc.c | |||
@@ -111,6 +111,7 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err) | |||
111 | lvhd->uniqueID = cpu_to_le64(uniqueID); | 111 | lvhd->uniqueID = cpu_to_le64(uniqueID); |
112 | mark_buffer_dirty(sbi->s_lvid_bh); | 112 | mark_buffer_dirty(sbi->s_lvid_bh); |
113 | } | 113 | } |
114 | mutex_unlock(&sbi->s_alloc_mutex); | ||
114 | inode->i_mode = mode; | 115 | inode->i_mode = mode; |
115 | inode->i_uid = current->fsuid; | 116 | inode->i_uid = current->fsuid; |
116 | if (dir->i_mode & S_ISGID) { | 117 | if (dir->i_mode & S_ISGID) { |
@@ -145,7 +146,6 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err) | |||
145 | if (!iinfo->i_ext.i_data) { | 146 | if (!iinfo->i_ext.i_data) { |
146 | iput(inode); | 147 | iput(inode); |
147 | *err = -ENOMEM; | 148 | *err = -ENOMEM; |
148 | mutex_unlock(&sbi->s_alloc_mutex); | ||
149 | return NULL; | 149 | return NULL; |
150 | } | 150 | } |
151 | if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_AD_IN_ICB)) | 151 | if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_AD_IN_ICB)) |
@@ -158,7 +158,6 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err) | |||
158 | iinfo->i_crtime = current_fs_time(inode->i_sb); | 158 | iinfo->i_crtime = current_fs_time(inode->i_sb); |
159 | insert_inode_hash(inode); | 159 | insert_inode_hash(inode); |
160 | mark_inode_dirty(inode); | 160 | mark_inode_dirty(inode); |
161 | mutex_unlock(&sbi->s_alloc_mutex); | ||
162 | 161 | ||
163 | if (DQUOT_ALLOC_INODE(inode)) { | 162 | if (DQUOT_ALLOC_INODE(inode)) { |
164 | DQUOT_DROP(inode); | 163 | DQUOT_DROP(inode); |