diff options
Diffstat (limited to 'fs/ufs/ialloc.c')
-rw-r--r-- | fs/ufs/ialloc.c | 25 |
1 files changed, 1 insertions, 24 deletions
diff --git a/fs/ufs/ialloc.c b/fs/ufs/ialloc.c index 230ecf608026..428017e018fe 100644 --- a/fs/ufs/ialloc.c +++ b/fs/ufs/ialloc.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <linux/time.h> | 27 | #include <linux/time.h> |
28 | #include <linux/stat.h> | 28 | #include <linux/stat.h> |
29 | #include <linux/string.h> | 29 | #include <linux/string.h> |
30 | #include <linux/quotaops.h> | ||
31 | #include <linux/buffer_head.h> | 30 | #include <linux/buffer_head.h> |
32 | #include <linux/sched.h> | 31 | #include <linux/sched.h> |
33 | #include <linux/bitops.h> | 32 | #include <linux/bitops.h> |
@@ -95,11 +94,6 @@ void ufs_free_inode (struct inode * inode) | |||
95 | 94 | ||
96 | is_directory = S_ISDIR(inode->i_mode); | 95 | is_directory = S_ISDIR(inode->i_mode); |
97 | 96 | ||
98 | dquot_free_inode(inode); | ||
99 | dquot_drop(inode); | ||
100 | |||
101 | clear_inode (inode); | ||
102 | |||
103 | if (ubh_isclr (UCPI_UBH(ucpi), ucpi->c_iusedoff, bit)) | 97 | if (ubh_isclr (UCPI_UBH(ucpi), ucpi->c_iusedoff, bit)) |
104 | ufs_error(sb, "ufs_free_inode", "bit already cleared for inode %u", ino); | 98 | ufs_error(sb, "ufs_free_inode", "bit already cleared for inode %u", ino); |
105 | else { | 99 | else { |
@@ -303,15 +297,7 @@ cg_found: | |||
303 | sb->s_dirt = 1; | 297 | sb->s_dirt = 1; |
304 | 298 | ||
305 | inode->i_ino = cg * uspi->s_ipg + bit; | 299 | inode->i_ino = cg * uspi->s_ipg + bit; |
306 | inode->i_mode = mode; | 300 | inode_init_owner(inode, dir, mode); |
307 | inode->i_uid = current_fsuid(); | ||
308 | if (dir->i_mode & S_ISGID) { | ||
309 | inode->i_gid = dir->i_gid; | ||
310 | if (S_ISDIR(mode)) | ||
311 | inode->i_mode |= S_ISGID; | ||
312 | } else | ||
313 | inode->i_gid = current_fsgid(); | ||
314 | |||
315 | inode->i_blocks = 0; | 301 | inode->i_blocks = 0; |
316 | inode->i_generation = 0; | 302 | inode->i_generation = 0; |
317 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; | 303 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; |
@@ -355,21 +341,12 @@ cg_found: | |||
355 | 341 | ||
356 | unlock_super (sb); | 342 | unlock_super (sb); |
357 | 343 | ||
358 | dquot_initialize(inode); | ||
359 | err = dquot_alloc_inode(inode); | ||
360 | if (err) { | ||
361 | dquot_drop(inode); | ||
362 | goto fail_without_unlock; | ||
363 | } | ||
364 | |||
365 | UFSD("allocating inode %lu\n", inode->i_ino); | 344 | UFSD("allocating inode %lu\n", inode->i_ino); |
366 | UFSD("EXIT\n"); | 345 | UFSD("EXIT\n"); |
367 | return inode; | 346 | return inode; |
368 | 347 | ||
369 | fail_remove_inode: | 348 | fail_remove_inode: |
370 | unlock_super(sb); | 349 | unlock_super(sb); |
371 | fail_without_unlock: | ||
372 | inode->i_flags |= S_NOQUOTA; | ||
373 | inode->i_nlink = 0; | 350 | inode->i_nlink = 0; |
374 | iput(inode); | 351 | iput(inode); |
375 | UFSD("EXIT (FAILED): err %d\n", err); | 352 | UFSD("EXIT (FAILED): err %d\n", err); |