diff options
Diffstat (limited to 'fs/udf/namei.c')
-rw-r--r-- | fs/udf/namei.c | 30 |
1 files changed, 2 insertions, 28 deletions
diff --git a/fs/udf/namei.c b/fs/udf/namei.c index 75816025f95f..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) { |
@@ -579,7 +576,6 @@ static int udf_create(struct inode *dir, struct dentry *dentry, int mode, | |||
579 | inode->i_data.a_ops = &udf_aops; | 576 | inode->i_data.a_ops = &udf_aops; |
580 | inode->i_op = &udf_file_inode_operations; | 577 | inode->i_op = &udf_file_inode_operations; |
581 | inode->i_fop = &udf_file_operations; | 578 | inode->i_fop = &udf_file_operations; |
582 | inode->i_mode = mode; | ||
583 | mark_inode_dirty(inode); | 579 | mark_inode_dirty(inode); |
584 | 580 | ||
585 | fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); | 581 | fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); |
@@ -618,8 +614,6 @@ static int udf_mknod(struct inode *dir, struct dentry *dentry, int mode, | |||
618 | if (!old_valid_dev(rdev)) | 614 | if (!old_valid_dev(rdev)) |
619 | return -EINVAL; | 615 | return -EINVAL; |
620 | 616 | ||
621 | dquot_initialize(dir); | ||
622 | |||
623 | lock_kernel(); | 617 | lock_kernel(); |
624 | err = -EIO; | 618 | err = -EIO; |
625 | inode = udf_new_inode(dir, mode, &err); | 619 | inode = udf_new_inode(dir, mode, &err); |
@@ -627,7 +621,6 @@ static int udf_mknod(struct inode *dir, struct dentry *dentry, int mode, | |||
627 | goto out; | 621 | goto out; |
628 | 622 | ||
629 | iinfo = UDF_I(inode); | 623 | iinfo = UDF_I(inode); |
630 | inode->i_uid = current_fsuid(); | ||
631 | init_special_inode(inode, mode, rdev); | 624 | init_special_inode(inode, mode, rdev); |
632 | fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); | 625 | fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); |
633 | if (!fi) { | 626 | if (!fi) { |
@@ -666,15 +659,13 @@ static int udf_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
666 | struct udf_inode_info *dinfo = UDF_I(dir); | 659 | struct udf_inode_info *dinfo = UDF_I(dir); |
667 | struct udf_inode_info *iinfo; | 660 | struct udf_inode_info *iinfo; |
668 | 661 | ||
669 | dquot_initialize(dir); | ||
670 | |||
671 | lock_kernel(); | 662 | lock_kernel(); |
672 | err = -EMLINK; | 663 | err = -EMLINK; |
673 | if (dir->i_nlink >= (256 << sizeof(dir->i_nlink)) - 1) | 664 | if (dir->i_nlink >= (256 << sizeof(dir->i_nlink)) - 1) |
674 | goto out; | 665 | goto out; |
675 | 666 | ||
676 | err = -EIO; | 667 | err = -EIO; |
677 | inode = udf_new_inode(dir, S_IFDIR, &err); | 668 | inode = udf_new_inode(dir, S_IFDIR | mode, &err); |
678 | if (!inode) | 669 | if (!inode) |
679 | goto out; | 670 | goto out; |
680 | 671 | ||
@@ -697,9 +688,6 @@ static int udf_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
697 | FID_FILE_CHAR_DIRECTORY | FID_FILE_CHAR_PARENT; | 688 | FID_FILE_CHAR_DIRECTORY | FID_FILE_CHAR_PARENT; |
698 | udf_write_fi(inode, &cfi, fi, &fibh, NULL, NULL); | 689 | udf_write_fi(inode, &cfi, fi, &fibh, NULL, NULL); |
699 | brelse(fibh.sbh); | 690 | brelse(fibh.sbh); |
700 | inode->i_mode = S_IFDIR | mode; | ||
701 | if (dir->i_mode & S_ISGID) | ||
702 | inode->i_mode |= S_ISGID; | ||
703 | mark_inode_dirty(inode); | 691 | mark_inode_dirty(inode); |
704 | 692 | ||
705 | fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); | 693 | fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); |
@@ -805,8 +793,6 @@ static int udf_rmdir(struct inode *dir, struct dentry *dentry) | |||
805 | struct fileIdentDesc *fi, cfi; | 793 | struct fileIdentDesc *fi, cfi; |
806 | struct kernel_lb_addr tloc; | 794 | struct kernel_lb_addr tloc; |
807 | 795 | ||
808 | dquot_initialize(dir); | ||
809 | |||
810 | retval = -ENOENT; | 796 | retval = -ENOENT; |
811 | lock_kernel(); | 797 | lock_kernel(); |
812 | fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); | 798 | fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); |
@@ -853,8 +839,6 @@ static int udf_unlink(struct inode *dir, struct dentry *dentry) | |||
853 | struct fileIdentDesc cfi; | 839 | struct fileIdentDesc cfi; |
854 | struct kernel_lb_addr tloc; | 840 | struct kernel_lb_addr tloc; |
855 | 841 | ||
856 | dquot_initialize(dir); | ||
857 | |||
858 | retval = -ENOENT; | 842 | retval = -ENOENT; |
859 | lock_kernel(); | 843 | lock_kernel(); |
860 | fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); | 844 | fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); |
@@ -909,10 +893,8 @@ static int udf_symlink(struct inode *dir, struct dentry *dentry, | |||
909 | struct buffer_head *bh; | 893 | struct buffer_head *bh; |
910 | struct udf_inode_info *iinfo; | 894 | struct udf_inode_info *iinfo; |
911 | 895 | ||
912 | dquot_initialize(dir); | ||
913 | |||
914 | lock_kernel(); | 896 | lock_kernel(); |
915 | inode = udf_new_inode(dir, S_IFLNK, &err); | 897 | inode = udf_new_inode(dir, S_IFLNK | S_IRWXUGO, &err); |
916 | if (!inode) | 898 | if (!inode) |
917 | goto out; | 899 | goto out; |
918 | 900 | ||
@@ -923,7 +905,6 @@ static int udf_symlink(struct inode *dir, struct dentry *dentry, | |||
923 | } | 905 | } |
924 | 906 | ||
925 | iinfo = UDF_I(inode); | 907 | iinfo = UDF_I(inode); |
926 | inode->i_mode = S_IFLNK | S_IRWXUGO; | ||
927 | inode->i_data.a_ops = &udf_symlink_aops; | 908 | inode->i_data.a_ops = &udf_symlink_aops; |
928 | inode->i_op = &udf_symlink_inode_operations; | 909 | inode->i_op = &udf_symlink_inode_operations; |
929 | 910 | ||
@@ -1081,8 +1062,6 @@ static int udf_link(struct dentry *old_dentry, struct inode *dir, | |||
1081 | int err; | 1062 | int err; |
1082 | struct buffer_head *bh; | 1063 | struct buffer_head *bh; |
1083 | 1064 | ||
1084 | dquot_initialize(dir); | ||
1085 | |||
1086 | lock_kernel(); | 1065 | lock_kernel(); |
1087 | if (inode->i_nlink >= (256 << sizeof(inode->i_nlink)) - 1) { | 1066 | if (inode->i_nlink >= (256 << sizeof(inode->i_nlink)) - 1) { |
1088 | unlock_kernel(); | 1067 | unlock_kernel(); |
@@ -1145,9 +1124,6 @@ static int udf_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
1145 | struct kernel_lb_addr tloc; | 1124 | struct kernel_lb_addr tloc; |
1146 | struct udf_inode_info *old_iinfo = UDF_I(old_inode); | 1125 | struct udf_inode_info *old_iinfo = UDF_I(old_inode); |
1147 | 1126 | ||
1148 | dquot_initialize(old_dir); | ||
1149 | dquot_initialize(new_dir); | ||
1150 | |||
1151 | lock_kernel(); | 1127 | lock_kernel(); |
1152 | 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); |
1153 | if (ofi) { | 1129 | if (ofi) { |
@@ -1393,7 +1369,6 @@ const struct export_operations udf_export_ops = { | |||
1393 | const struct inode_operations udf_dir_inode_operations = { | 1369 | const struct inode_operations udf_dir_inode_operations = { |
1394 | .lookup = udf_lookup, | 1370 | .lookup = udf_lookup, |
1395 | .create = udf_create, | 1371 | .create = udf_create, |
1396 | .setattr = udf_setattr, | ||
1397 | .link = udf_link, | 1372 | .link = udf_link, |
1398 | .unlink = udf_unlink, | 1373 | .unlink = udf_unlink, |
1399 | .symlink = udf_symlink, | 1374 | .symlink = udf_symlink, |
@@ -1406,5 +1381,4 @@ const struct inode_operations udf_symlink_inode_operations = { | |||
1406 | .readlink = generic_readlink, | 1381 | .readlink = generic_readlink, |
1407 | .follow_link = page_follow_link_light, | 1382 | .follow_link = page_follow_link_light, |
1408 | .put_link = page_put_link, | 1383 | .put_link = page_put_link, |
1409 | .setattr = udf_setattr, | ||
1410 | }; | 1384 | }; |