diff options
Diffstat (limited to 'fs/ocfs2')
-rw-r--r-- | fs/ocfs2/file.c | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index fe6b795b1a45..39b2f1653e25 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c | |||
@@ -943,20 +943,6 @@ out: | |||
943 | return ret; | 943 | return ret; |
944 | } | 944 | } |
945 | 945 | ||
946 | static inline int ocfs2_write_should_remove_suid(struct inode *inode) | ||
947 | { | ||
948 | mode_t mode = inode->i_mode; | ||
949 | |||
950 | if (!capable(CAP_FSETID)) { | ||
951 | if (unlikely(mode & S_ISUID)) | ||
952 | return 1; | ||
953 | |||
954 | if (unlikely((mode & S_ISGID) && (mode & S_IXGRP))) | ||
955 | return 1; | ||
956 | } | ||
957 | return 0; | ||
958 | } | ||
959 | |||
960 | static ssize_t ocfs2_file_aio_write(struct kiocb *iocb, | 946 | static ssize_t ocfs2_file_aio_write(struct kiocb *iocb, |
961 | const struct iovec *iov, | 947 | const struct iovec *iov, |
962 | unsigned long nr_segs, | 948 | unsigned long nr_segs, |
@@ -1021,7 +1007,7 @@ static ssize_t ocfs2_file_aio_write(struct kiocb *iocb, | |||
1021 | * inode. There's also the dinode i_size state which | 1007 | * inode. There's also the dinode i_size state which |
1022 | * can be lost via setattr during extending writes (we | 1008 | * can be lost via setattr during extending writes (we |
1023 | * set inode->i_size at the end of a write. */ | 1009 | * set inode->i_size at the end of a write. */ |
1024 | if (ocfs2_write_should_remove_suid(inode)) { | 1010 | if (should_remove_suid(filp->f_dentry)) { |
1025 | if (meta_level == 0) { | 1011 | if (meta_level == 0) { |
1026 | ocfs2_meta_unlock(inode, meta_level); | 1012 | ocfs2_meta_unlock(inode, meta_level); |
1027 | meta_level = 1; | 1013 | meta_level = 1; |