diff options
author | Jan Kara <jack@suse.cz> | 2010-05-19 10:28:56 -0400 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2010-05-24 08:10:19 -0400 |
commit | 36350462814739e1f38cba59a6900ebadb08d3bb (patch) | |
tree | 09c1f17c5a264a50028a1ea25f3fd681734d2058 /fs/udf | |
parent | 287a80958cf63fc5c68d5bf6e89a3669dd66234a (diff) |
udf: Remove dead quota code
Quota on UDF is non-functional at least since 2.6.16 (I'm too lazy to
do more archeology) because it does not provide .quota_write and .quota_read
functions and thus quotaon(8) just returns EINVAL. Since nobody complained
for all those years and quota support is not even in UDF standard just nuke
it.
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf')
-rw-r--r-- | fs/udf/balloc.c | 43 | ||||
-rw-r--r-- | fs/udf/file.c | 26 | ||||
-rw-r--r-- | fs/udf/ialloc.c | 21 | ||||
-rw-r--r-- | fs/udf/inode.c | 5 | ||||
-rw-r--r-- | fs/udf/namei.c | 20 | ||||
-rw-r--r-- | fs/udf/super.c | 18 | ||||
-rw-r--r-- | fs/udf/udfdecl.h | 1 |
7 files changed, 6 insertions, 128 deletions
diff --git a/fs/udf/balloc.c b/fs/udf/balloc.c index 9a9378b4eb5a..b608efaa4cee 100644 --- a/fs/udf/balloc.c +++ b/fs/udf/balloc.c | |||
@@ -21,7 +21,6 @@ | |||
21 | 21 | ||
22 | #include "udfdecl.h" | 22 | #include "udfdecl.h" |
23 | 23 | ||
24 | #include <linux/quotaops.h> | ||
25 | #include <linux/buffer_head.h> | 24 | #include <linux/buffer_head.h> |
26 | #include <linux/bitops.h> | 25 | #include <linux/bitops.h> |
27 | 26 | ||
@@ -159,8 +158,6 @@ static void udf_bitmap_free_blocks(struct super_block *sb, | |||
159 | udf_debug("byte=%2x\n", | 158 | udf_debug("byte=%2x\n", |
160 | ((char *)bh->b_data)[(bit + i) >> 3]); | 159 | ((char *)bh->b_data)[(bit + i) >> 3]); |
161 | } else { | 160 | } else { |
162 | if (inode) | ||
163 | dquot_free_block(inode, 1); | ||
164 | udf_add_free_space(sb, sbi->s_partition, 1); | 161 | udf_add_free_space(sb, sbi->s_partition, 1); |
165 | } | 162 | } |
166 | } | 163 | } |
@@ -210,15 +207,8 @@ static int udf_bitmap_prealloc_blocks(struct super_block *sb, | |||
210 | bit = block % (sb->s_blocksize << 3); | 207 | bit = block % (sb->s_blocksize << 3); |
211 | 208 | ||
212 | while (bit < (sb->s_blocksize << 3) && block_count > 0) { | 209 | while (bit < (sb->s_blocksize << 3) && block_count > 0) { |
213 | if (!udf_test_bit(bit, bh->b_data)) | 210 | if (!udf_clear_bit(bit, bh->b_data)) |
214 | goto out; | 211 | goto out; |
215 | else if (dquot_prealloc_block(inode, 1)) | ||
216 | goto out; | ||
217 | else if (!udf_clear_bit(bit, bh->b_data)) { | ||
218 | udf_debug("bit already cleared for block %d\n", bit); | ||
219 | dquot_free_block(inode, 1); | ||
220 | goto out; | ||
221 | } | ||
222 | block_count--; | 212 | block_count--; |
223 | alloc_count++; | 213 | alloc_count++; |
224 | bit++; | 214 | bit++; |
@@ -338,20 +328,6 @@ search_back: | |||
338 | } | 328 | } |
339 | 329 | ||
340 | got_block: | 330 | got_block: |
341 | |||
342 | /* | ||
343 | * Check quota for allocation of this block. | ||
344 | */ | ||
345 | if (inode) { | ||
346 | int ret = dquot_alloc_block(inode, 1); | ||
347 | |||
348 | if (ret) { | ||
349 | mutex_unlock(&sbi->s_alloc_mutex); | ||
350 | *err = ret; | ||
351 | return 0; | ||
352 | } | ||
353 | } | ||
354 | |||
355 | newblock = bit + (block_group << (sb->s_blocksize_bits + 3)) - | 331 | newblock = bit + (block_group << (sb->s_blocksize_bits + 3)) - |
356 | (sizeof(struct spaceBitmapDesc) << 3); | 332 | (sizeof(struct spaceBitmapDesc) << 3); |
357 | 333 | ||
@@ -401,10 +377,6 @@ static void udf_table_free_blocks(struct super_block *sb, | |||
401 | } | 377 | } |
402 | 378 | ||
403 | iinfo = UDF_I(table); | 379 | iinfo = UDF_I(table); |
404 | /* We do this up front - There are some error conditions that | ||
405 | could occure, but.. oh well */ | ||
406 | if (inode) | ||
407 | dquot_free_block(inode, count); | ||
408 | udf_add_free_space(sb, sbi->s_partition, count); | 380 | udf_add_free_space(sb, sbi->s_partition, count); |
409 | 381 | ||
410 | start = bloc->logicalBlockNum + offset; | 382 | start = bloc->logicalBlockNum + offset; |
@@ -649,10 +621,7 @@ static int udf_table_prealloc_blocks(struct super_block *sb, | |||
649 | epos.offset -= adsize; | 621 | epos.offset -= adsize; |
650 | 622 | ||
651 | alloc_count = (elen >> sb->s_blocksize_bits); | 623 | alloc_count = (elen >> sb->s_blocksize_bits); |
652 | if (inode && dquot_prealloc_block(inode, | 624 | if (alloc_count > block_count) { |
653 | alloc_count > block_count ? block_count : alloc_count)) | ||
654 | alloc_count = 0; | ||
655 | else if (alloc_count > block_count) { | ||
656 | alloc_count = block_count; | 625 | alloc_count = block_count; |
657 | eloc.logicalBlockNum += alloc_count; | 626 | eloc.logicalBlockNum += alloc_count; |
658 | elen -= (alloc_count << sb->s_blocksize_bits); | 627 | elen -= (alloc_count << sb->s_blocksize_bits); |
@@ -752,14 +721,6 @@ static int udf_table_new_block(struct super_block *sb, | |||
752 | newblock = goal_eloc.logicalBlockNum; | 721 | newblock = goal_eloc.logicalBlockNum; |
753 | goal_eloc.logicalBlockNum++; | 722 | goal_eloc.logicalBlockNum++; |
754 | goal_elen -= sb->s_blocksize; | 723 | goal_elen -= sb->s_blocksize; |
755 | if (inode) { | ||
756 | *err = dquot_alloc_block(inode, 1); | ||
757 | if (*err) { | ||
758 | brelse(goal_epos.bh); | ||
759 | mutex_unlock(&sbi->s_alloc_mutex); | ||
760 | return 0; | ||
761 | } | ||
762 | } | ||
763 | 724 | ||
764 | if (goal_elen) | 725 | if (goal_elen) |
765 | udf_write_aext(table, &goal_epos, &goal_eloc, goal_elen, 1); | 726 | udf_write_aext(table, &goal_epos, &goal_eloc, goal_elen, 1); |
diff --git a/fs/udf/file.c b/fs/udf/file.c index baae3a723946..0db1d672950e 100644 --- a/fs/udf/file.c +++ b/fs/udf/file.c | |||
@@ -34,7 +34,6 @@ | |||
34 | #include <linux/errno.h> | 34 | #include <linux/errno.h> |
35 | #include <linux/smp_lock.h> | 35 | #include <linux/smp_lock.h> |
36 | #include <linux/pagemap.h> | 36 | #include <linux/pagemap.h> |
37 | #include <linux/quotaops.h> | ||
38 | #include <linux/buffer_head.h> | 37 | #include <linux/buffer_head.h> |
39 | #include <linux/aio.h> | 38 | #include <linux/aio.h> |
40 | #include <linux/smp_lock.h> | 39 | #include <linux/smp_lock.h> |
@@ -219,7 +218,7 @@ const struct file_operations udf_file_operations = { | |||
219 | .read = do_sync_read, | 218 | .read = do_sync_read, |
220 | .aio_read = generic_file_aio_read, | 219 | .aio_read = generic_file_aio_read, |
221 | .unlocked_ioctl = udf_ioctl, | 220 | .unlocked_ioctl = udf_ioctl, |
222 | .open = dquot_file_open, | 221 | .open = generic_file_open, |
223 | .mmap = generic_file_mmap, | 222 | .mmap = generic_file_mmap, |
224 | .write = do_sync_write, | 223 | .write = do_sync_write, |
225 | .aio_write = udf_file_aio_write, | 224 | .aio_write = udf_file_aio_write, |
@@ -229,29 +228,6 @@ const struct file_operations udf_file_operations = { | |||
229 | .llseek = generic_file_llseek, | 228 | .llseek = generic_file_llseek, |
230 | }; | 229 | }; |
231 | 230 | ||
232 | int udf_setattr(struct dentry *dentry, struct iattr *iattr) | ||
233 | { | ||
234 | struct inode *inode = dentry->d_inode; | ||
235 | int error; | ||
236 | |||
237 | error = inode_change_ok(inode, iattr); | ||
238 | if (error) | ||
239 | return error; | ||
240 | |||
241 | if (is_quota_modification(inode, iattr)) | ||
242 | dquot_initialize(inode); | ||
243 | |||
244 | if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) || | ||
245 | (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) { | ||
246 | error = dquot_transfer(inode, iattr); | ||
247 | if (error) | ||
248 | return error; | ||
249 | } | ||
250 | |||
251 | return inode_setattr(inode, iattr); | ||
252 | } | ||
253 | |||
254 | const struct inode_operations udf_file_inode_operations = { | 231 | const struct inode_operations udf_file_inode_operations = { |
255 | .truncate = udf_truncate, | 232 | .truncate = udf_truncate, |
256 | .setattr = udf_setattr, | ||
257 | }; | 233 | }; |
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c index 2b5586c7f02a..18cd7111185d 100644 --- a/fs/udf/ialloc.c +++ b/fs/udf/ialloc.c | |||
@@ -20,7 +20,6 @@ | |||
20 | 20 | ||
21 | #include "udfdecl.h" | 21 | #include "udfdecl.h" |
22 | #include <linux/fs.h> | 22 | #include <linux/fs.h> |
23 | #include <linux/quotaops.h> | ||
24 | #include <linux/sched.h> | 23 | #include <linux/sched.h> |
25 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
26 | 25 | ||
@@ -32,13 +31,6 @@ void udf_free_inode(struct inode *inode) | |||
32 | struct super_block *sb = inode->i_sb; | 31 | struct super_block *sb = inode->i_sb; |
33 | struct udf_sb_info *sbi = UDF_SB(sb); | 32 | struct udf_sb_info *sbi = UDF_SB(sb); |
34 | 33 | ||
35 | /* | ||
36 | * Note: we must free any quota before locking the superblock, | ||
37 | * as writing the quota to disk may need the lock as well. | ||
38 | */ | ||
39 | dquot_free_inode(inode); | ||
40 | dquot_drop(inode); | ||
41 | |||
42 | clear_inode(inode); | 34 | clear_inode(inode); |
43 | 35 | ||
44 | mutex_lock(&sbi->s_alloc_mutex); | 36 | mutex_lock(&sbi->s_alloc_mutex); |
@@ -61,7 +53,7 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err) | |||
61 | struct super_block *sb = dir->i_sb; | 53 | struct super_block *sb = dir->i_sb; |
62 | struct udf_sb_info *sbi = UDF_SB(sb); | 54 | struct udf_sb_info *sbi = UDF_SB(sb); |
63 | struct inode *inode; | 55 | struct inode *inode; |
64 | int block, ret; | 56 | int block; |
65 | uint32_t start = UDF_I(dir)->i_location.logicalBlockNum; | 57 | uint32_t start = UDF_I(dir)->i_location.logicalBlockNum; |
66 | struct udf_inode_info *iinfo; | 58 | struct udf_inode_info *iinfo; |
67 | struct udf_inode_info *dinfo = UDF_I(dir); | 59 | struct udf_inode_info *dinfo = UDF_I(dir); |
@@ -146,17 +138,6 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err) | |||
146 | insert_inode_hash(inode); | 138 | insert_inode_hash(inode); |
147 | mark_inode_dirty(inode); | 139 | mark_inode_dirty(inode); |
148 | 140 | ||
149 | dquot_initialize(inode); | ||
150 | ret = dquot_alloc_inode(inode); | ||
151 | if (ret) { | ||
152 | dquot_drop(inode); | ||
153 | inode->i_flags |= S_NOQUOTA; | ||
154 | inode->i_nlink = 0; | ||
155 | iput(inode); | ||
156 | *err = ret; | ||
157 | return NULL; | ||
158 | } | ||
159 | |||
160 | *err = 0; | 141 | *err = 0; |
161 | return inode; | 142 | return inode; |
162 | } | 143 | } |
diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 8a3fbd177cab..124852bcf6fe 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include <linux/pagemap.h> | 36 | #include <linux/pagemap.h> |
37 | #include <linux/buffer_head.h> | 37 | #include <linux/buffer_head.h> |
38 | #include <linux/writeback.h> | 38 | #include <linux/writeback.h> |
39 | #include <linux/quotaops.h> | ||
40 | #include <linux/slab.h> | 39 | #include <linux/slab.h> |
41 | #include <linux/crc-itu-t.h> | 40 | #include <linux/crc-itu-t.h> |
42 | 41 | ||
@@ -71,9 +70,6 @@ static int udf_get_block(struct inode *, sector_t, struct buffer_head *, int); | |||
71 | 70 | ||
72 | void udf_delete_inode(struct inode *inode) | 71 | void udf_delete_inode(struct inode *inode) |
73 | { | 72 | { |
74 | if (!is_bad_inode(inode)) | ||
75 | dquot_initialize(inode); | ||
76 | |||
77 | truncate_inode_pages(&inode->i_data, 0); | 73 | truncate_inode_pages(&inode->i_data, 0); |
78 | 74 | ||
79 | if (is_bad_inode(inode)) | 75 | if (is_bad_inode(inode)) |
@@ -113,7 +109,6 @@ void udf_clear_inode(struct inode *inode) | |||
113 | (unsigned long long)iinfo->i_lenExtents); | 109 | (unsigned long long)iinfo->i_lenExtents); |
114 | } | 110 | } |
115 | 111 | ||
116 | dquot_drop(inode); | ||
117 | kfree(iinfo->i_ext.i_data); | 112 | kfree(iinfo->i_ext.i_data); |
118 | iinfo->i_ext.i_data = NULL; | 113 | iinfo->i_ext.i_data = NULL; |
119 | } | 114 | } |
diff --git a/fs/udf/namei.c b/fs/udf/namei.c index 585f733615dc..bf5fc674193c 100644 --- a/fs/udf/namei.c +++ b/fs/udf/namei.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <linux/errno.h> | 27 | #include <linux/errno.h> |
28 | #include <linux/mm.h> | 28 | #include <linux/mm.h> |
29 | #include <linux/slab.h> | 29 | #include <linux/slab.h> |
30 | #include <linux/quotaops.h> | ||
31 | #include <linux/smp_lock.h> | 30 | #include <linux/smp_lock.h> |
32 | #include <linux/buffer_head.h> | 31 | #include <linux/buffer_head.h> |
33 | #include <linux/sched.h> | 32 | #include <linux/sched.h> |
@@ -563,8 +562,6 @@ static int udf_create(struct inode *dir, struct dentry *dentry, int mode, | |||
563 | int err; | 562 | int err; |
564 | struct udf_inode_info *iinfo; | 563 | struct udf_inode_info *iinfo; |
565 | 564 | ||
566 | dquot_initialize(dir); | ||
567 | |||
568 | lock_kernel(); | 565 | lock_kernel(); |
569 | inode = udf_new_inode(dir, mode, &err); | 566 | inode = udf_new_inode(dir, mode, &err); |
570 | if (!inode) { | 567 | if (!inode) { |
@@ -617,8 +614,6 @@ static int udf_mknod(struct inode *dir, struct dentry *dentry, int mode, | |||
617 | if (!old_valid_dev(rdev)) | 614 | if (!old_valid_dev(rdev)) |
618 | return -EINVAL; | 615 | return -EINVAL; |
619 | 616 | ||
620 | dquot_initialize(dir); | ||
621 | |||
622 | lock_kernel(); | 617 | lock_kernel(); |
623 | err = -EIO; | 618 | err = -EIO; |
624 | inode = udf_new_inode(dir, mode, &err); | 619 | inode = udf_new_inode(dir, mode, &err); |
@@ -664,8 +659,6 @@ static int udf_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
664 | struct udf_inode_info *dinfo = UDF_I(dir); | 659 | struct udf_inode_info *dinfo = UDF_I(dir); |
665 | struct udf_inode_info *iinfo; | 660 | struct udf_inode_info *iinfo; |
666 | 661 | ||
667 | dquot_initialize(dir); | ||
668 | |||
669 | lock_kernel(); | 662 | lock_kernel(); |
670 | err = -EMLINK; | 663 | err = -EMLINK; |
671 | if (dir->i_nlink >= (256 << sizeof(dir->i_nlink)) - 1) | 664 | if (dir->i_nlink >= (256 << sizeof(dir->i_nlink)) - 1) |
@@ -800,8 +793,6 @@ static int udf_rmdir(struct inode *dir, struct dentry *dentry) | |||
800 | struct fileIdentDesc *fi, cfi; | 793 | struct fileIdentDesc *fi, cfi; |
801 | struct kernel_lb_addr tloc; | 794 | struct kernel_lb_addr tloc; |
802 | 795 | ||
803 | dquot_initialize(dir); | ||
804 | |||
805 | retval = -ENOENT; | 796 | retval = -ENOENT; |
806 | lock_kernel(); | 797 | lock_kernel(); |
807 | fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); | 798 | fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); |
@@ -848,8 +839,6 @@ static int udf_unlink(struct inode *dir, struct dentry *dentry) | |||
848 | struct fileIdentDesc cfi; | 839 | struct fileIdentDesc cfi; |
849 | struct kernel_lb_addr tloc; | 840 | struct kernel_lb_addr tloc; |
850 | 841 | ||
851 | dquot_initialize(dir); | ||
852 | |||
853 | retval = -ENOENT; | 842 | retval = -ENOENT; |
854 | lock_kernel(); | 843 | lock_kernel(); |
855 | fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); | 844 | fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); |
@@ -904,8 +893,6 @@ static int udf_symlink(struct inode *dir, struct dentry *dentry, | |||
904 | struct buffer_head *bh; | 893 | struct buffer_head *bh; |
905 | struct udf_inode_info *iinfo; | 894 | struct udf_inode_info *iinfo; |
906 | 895 | ||
907 | dquot_initialize(dir); | ||
908 | |||
909 | lock_kernel(); | 896 | lock_kernel(); |
910 | inode = udf_new_inode(dir, S_IFLNK | S_IRWXUGO, &err); | 897 | inode = udf_new_inode(dir, S_IFLNK | S_IRWXUGO, &err); |
911 | if (!inode) | 898 | if (!inode) |
@@ -1075,8 +1062,6 @@ static int udf_link(struct dentry *old_dentry, struct inode *dir, | |||
1075 | int err; | 1062 | int err; |
1076 | struct buffer_head *bh; | 1063 | struct buffer_head *bh; |
1077 | 1064 | ||
1078 | dquot_initialize(dir); | ||
1079 | |||
1080 | lock_kernel(); | 1065 | lock_kernel(); |
1081 | if (inode->i_nlink >= (256 << sizeof(inode->i_nlink)) - 1) { | 1066 | if (inode->i_nlink >= (256 << sizeof(inode->i_nlink)) - 1) { |
1082 | unlock_kernel(); | 1067 | unlock_kernel(); |
@@ -1139,9 +1124,6 @@ static int udf_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
1139 | struct kernel_lb_addr tloc; | 1124 | struct kernel_lb_addr tloc; |
1140 | struct udf_inode_info *old_iinfo = UDF_I(old_inode); | 1125 | struct udf_inode_info *old_iinfo = UDF_I(old_inode); |
1141 | 1126 | ||
1142 | dquot_initialize(old_dir); | ||
1143 | dquot_initialize(new_dir); | ||
1144 | |||
1145 | lock_kernel(); | 1127 | lock_kernel(); |
1146 | ofi = udf_find_entry(old_dir, &old_dentry->d_name, &ofibh, &ocfi); | 1128 | ofi = udf_find_entry(old_dir, &old_dentry->d_name, &ofibh, &ocfi); |
1147 | if (ofi) { | 1129 | if (ofi) { |
@@ -1387,7 +1369,6 @@ const struct export_operations udf_export_ops = { | |||
1387 | const struct inode_operations udf_dir_inode_operations = { | 1369 | const struct inode_operations udf_dir_inode_operations = { |
1388 | .lookup = udf_lookup, | 1370 | .lookup = udf_lookup, |
1389 | .create = udf_create, | 1371 | .create = udf_create, |
1390 | .setattr = udf_setattr, | ||
1391 | .link = udf_link, | 1372 | .link = udf_link, |
1392 | .unlink = udf_unlink, | 1373 | .unlink = udf_unlink, |
1393 | .symlink = udf_symlink, | 1374 | .symlink = udf_symlink, |
@@ -1400,5 +1381,4 @@ const struct inode_operations udf_symlink_inode_operations = { | |||
1400 | .readlink = generic_readlink, | 1381 | .readlink = generic_readlink, |
1401 | .follow_link = page_follow_link_light, | 1382 | .follow_link = page_follow_link_light, |
1402 | .put_link = page_put_link, | 1383 | .put_link = page_put_link, |
1403 | .setattr = udf_setattr, | ||
1404 | }; | 1384 | }; |
diff --git a/fs/udf/super.c b/fs/udf/super.c index 5e03592369d7..612d1e2e285a 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c | |||
@@ -54,7 +54,6 @@ | |||
54 | #include <linux/vmalloc.h> | 54 | #include <linux/vmalloc.h> |
55 | #include <linux/errno.h> | 55 | #include <linux/errno.h> |
56 | #include <linux/mount.h> | 56 | #include <linux/mount.h> |
57 | #include <linux/quotaops.h> | ||
58 | #include <linux/seq_file.h> | 57 | #include <linux/seq_file.h> |
59 | #include <linux/bitmap.h> | 58 | #include <linux/bitmap.h> |
60 | #include <linux/crc-itu-t.h> | 59 | #include <linux/crc-itu-t.h> |
@@ -587,18 +586,11 @@ static int udf_remount_fs(struct super_block *sb, int *flags, char *options) | |||
587 | if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) | 586 | if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) |
588 | goto out_unlock; | 587 | goto out_unlock; |
589 | 588 | ||
590 | if (*flags & MS_RDONLY) { | 589 | if (*flags & MS_RDONLY) |
591 | udf_close_lvid(sb); | 590 | udf_close_lvid(sb); |
592 | 591 | else | |
593 | error = dquot_suspend(sb, -1); | ||
594 | } else { | ||
595 | udf_open_lvid(sb); | 592 | udf_open_lvid(sb); |
596 | 593 | ||
597 | /* mark the fs r/w for quota activity */ | ||
598 | sb->s_flags &= ~MS_RDONLY; | ||
599 | dquot_resume(sb, -1); | ||
600 | } | ||
601 | |||
602 | out_unlock: | 594 | out_unlock: |
603 | unlock_kernel(); | 595 | unlock_kernel(); |
604 | return error; | 596 | return error; |
@@ -1948,10 +1940,6 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent) | |||
1948 | /* Fill in the rest of the superblock */ | 1940 | /* Fill in the rest of the superblock */ |
1949 | sb->s_op = &udf_sb_ops; | 1941 | sb->s_op = &udf_sb_ops; |
1950 | sb->s_export_op = &udf_export_ops; | 1942 | sb->s_export_op = &udf_export_ops; |
1951 | #ifdef CONFIG_QUOTA | ||
1952 | sb->s_qcop = &dquot_quotactl_ops; | ||
1953 | sb->dq_op = NULL; /* &dquot_operations */ | ||
1954 | #endif | ||
1955 | 1943 | ||
1956 | sb->s_dirt = 0; | 1944 | sb->s_dirt = 0; |
1957 | sb->s_magic = UDF_SUPER_MAGIC; | 1945 | sb->s_magic = UDF_SUPER_MAGIC; |
@@ -2106,8 +2094,6 @@ static void udf_put_super(struct super_block *sb) | |||
2106 | int i; | 2094 | int i; |
2107 | struct udf_sb_info *sbi; | 2095 | struct udf_sb_info *sbi; |
2108 | 2096 | ||
2109 | dquot_disable(sb, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); | ||
2110 | |||
2111 | sbi = UDF_SB(sb); | 2097 | sbi = UDF_SB(sb); |
2112 | 2098 | ||
2113 | lock_kernel(); | 2099 | lock_kernel(); |
diff --git a/fs/udf/udfdecl.h b/fs/udf/udfdecl.h index 9079ff7d6255..2bac0354891f 100644 --- a/fs/udf/udfdecl.h +++ b/fs/udf/udfdecl.h | |||
@@ -131,7 +131,6 @@ extern int udf_write_fi(struct inode *inode, struct fileIdentDesc *, | |||
131 | 131 | ||
132 | /* file.c */ | 132 | /* file.c */ |
133 | extern long udf_ioctl(struct file *, unsigned int, unsigned long); | 133 | extern long udf_ioctl(struct file *, unsigned int, unsigned long); |
134 | extern int udf_setattr(struct dentry *dentry, struct iattr *iattr); | ||
135 | /* inode.c */ | 134 | /* inode.c */ |
136 | extern struct inode *udf_iget(struct super_block *, struct kernel_lb_addr *); | 135 | extern struct inode *udf_iget(struct super_block *, struct kernel_lb_addr *); |
137 | extern int udf_sync_inode(struct inode *); | 136 | extern int udf_sync_inode(struct inode *); |