aboutsummaryrefslogtreecommitdiffstats
path: root/fs/udf/namei.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/udf/namei.c')
-rw-r--r--fs/udf/namei.c30
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 = {
1393const struct inode_operations udf_dir_inode_operations = { 1369const 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};