aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-26 23:16:07 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-26 23:16:07 -0500
commitd895cb1af15c04c522a25c79cc429076987c089b (patch)
tree895dc9157e28f603d937a58be664e4e440d5530c /fs/gfs2
parent9626357371b519f2b955fef399647181034a77fe (diff)
parentd3d009cb965eae7e002ea5badf603ea8f4c34915 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs pile (part one) from Al Viro: "Assorted stuff - cleaning namei.c up a bit, fixing ->d_name/->d_parent locking violations, etc. The most visible changes here are death of FS_REVAL_DOT (replaced with "has ->d_weak_revalidate()") and a new helper getting from struct file to inode. Some bits of preparation to xattr method interface changes. Misc patches by various people sent this cycle *and* ocfs2 fixes from several cycles ago that should've been upstream right then. PS: the next vfs pile will be xattr stuff." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits) saner proc_get_inode() calling conventions proc: avoid extra pde_put() in proc_fill_super() fs: change return values from -EACCES to -EPERM fs/exec.c: make bprm_mm_init() static ocfs2/dlm: use GFP_ATOMIC inside a spin_lock ocfs2: fix possible use-after-free with AIO ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path get_empty_filp()/alloc_file() leave both ->f_pos and ->f_version zero target: writev() on single-element vector is pointless export kernel_write(), convert open-coded instances fs: encode_fh: return FILEID_INVALID if invalid fid_type kill f_vfsmnt vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op nfsd: handle vfs_getattr errors in acl protocol switch vfs_getattr() to struct path default SET_PERSONALITY() in linux/elf.h ceph: prepopulate inodes only when request is aborted d_hash_and_lookup(): export, switch open-coded instances 9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate() 9p: split dropping the acls from v9fs_set_create_acl() ...
Diffstat (limited to 'fs/gfs2')
-rw-r--r--fs/gfs2/export.c4
-rw-r--r--fs/gfs2/file.c17
-rw-r--r--fs/gfs2/rgrp.c2
-rw-r--r--fs/gfs2/sys.c18
4 files changed, 20 insertions, 21 deletions
diff --git a/fs/gfs2/export.c b/fs/gfs2/export.c
index 4767774a5f3e..9973df4ff565 100644
--- a/fs/gfs2/export.c
+++ b/fs/gfs2/export.c
@@ -37,10 +37,10 @@ static int gfs2_encode_fh(struct inode *inode, __u32 *p, int *len,
37 37
38 if (parent && (*len < GFS2_LARGE_FH_SIZE)) { 38 if (parent && (*len < GFS2_LARGE_FH_SIZE)) {
39 *len = GFS2_LARGE_FH_SIZE; 39 *len = GFS2_LARGE_FH_SIZE;
40 return 255; 40 return FILEID_INVALID;
41 } else if (*len < GFS2_SMALL_FH_SIZE) { 41 } else if (*len < GFS2_SMALL_FH_SIZE) {
42 *len = GFS2_SMALL_FH_SIZE; 42 *len = GFS2_SMALL_FH_SIZE;
43 return 255; 43 return FILEID_INVALID;
44 } 44 }
45 45
46 fh[0] = cpu_to_be32(ip->i_no_formal_ino >> 32); 46 fh[0] = cpu_to_be32(ip->i_no_formal_ino >> 32);
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
index 2687f50d98cb..019f45e45097 100644
--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -157,7 +157,7 @@ static const u32 gfs2_to_fsflags[32] = {
157 157
158static int gfs2_get_flags(struct file *filp, u32 __user *ptr) 158static int gfs2_get_flags(struct file *filp, u32 __user *ptr)
159{ 159{
160 struct inode *inode = filp->f_path.dentry->d_inode; 160 struct inode *inode = file_inode(filp);
161 struct gfs2_inode *ip = GFS2_I(inode); 161 struct gfs2_inode *ip = GFS2_I(inode);
162 struct gfs2_holder gh; 162 struct gfs2_holder gh;
163 int error; 163 int error;
@@ -217,7 +217,7 @@ void gfs2_set_inode_flags(struct inode *inode)
217 */ 217 */
218static int do_gfs2_set_flags(struct file *filp, u32 reqflags, u32 mask) 218static int do_gfs2_set_flags(struct file *filp, u32 reqflags, u32 mask)
219{ 219{
220 struct inode *inode = filp->f_path.dentry->d_inode; 220 struct inode *inode = file_inode(filp);
221 struct gfs2_inode *ip = GFS2_I(inode); 221 struct gfs2_inode *ip = GFS2_I(inode);
222 struct gfs2_sbd *sdp = GFS2_SB(inode); 222 struct gfs2_sbd *sdp = GFS2_SB(inode);
223 struct buffer_head *bh; 223 struct buffer_head *bh;
@@ -293,7 +293,7 @@ out_drop_write:
293 293
294static int gfs2_set_flags(struct file *filp, u32 __user *ptr) 294static int gfs2_set_flags(struct file *filp, u32 __user *ptr)
295{ 295{
296 struct inode *inode = filp->f_path.dentry->d_inode; 296 struct inode *inode = file_inode(filp);
297 u32 fsflags, gfsflags; 297 u32 fsflags, gfsflags;
298 298
299 if (get_user(fsflags, ptr)) 299 if (get_user(fsflags, ptr))
@@ -336,7 +336,7 @@ static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
336 336
337static void gfs2_size_hint(struct file *filep, loff_t offset, size_t size) 337static void gfs2_size_hint(struct file *filep, loff_t offset, size_t size)
338{ 338{
339 struct inode *inode = filep->f_dentry->d_inode; 339 struct inode *inode = file_inode(filep);
340 struct gfs2_sbd *sdp = GFS2_SB(inode); 340 struct gfs2_sbd *sdp = GFS2_SB(inode);
341 struct gfs2_inode *ip = GFS2_I(inode); 341 struct gfs2_inode *ip = GFS2_I(inode);
342 size_t blks = (size + sdp->sd_sb.sb_bsize - 1) >> sdp->sd_sb.sb_bsize_shift; 342 size_t blks = (size + sdp->sd_sb.sb_bsize - 1) >> sdp->sd_sb.sb_bsize_shift;
@@ -386,7 +386,7 @@ static int gfs2_allocate_page_backing(struct page *page)
386static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) 386static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
387{ 387{
388 struct page *page = vmf->page; 388 struct page *page = vmf->page;
389 struct inode *inode = vma->vm_file->f_path.dentry->d_inode; 389 struct inode *inode = file_inode(vma->vm_file);
390 struct gfs2_inode *ip = GFS2_I(inode); 390 struct gfs2_inode *ip = GFS2_I(inode);
391 struct gfs2_sbd *sdp = GFS2_SB(inode); 391 struct gfs2_sbd *sdp = GFS2_SB(inode);
392 unsigned long last_index; 392 unsigned long last_index;
@@ -673,8 +673,7 @@ static ssize_t gfs2_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
673{ 673{
674 struct file *file = iocb->ki_filp; 674 struct file *file = iocb->ki_filp;
675 size_t writesize = iov_length(iov, nr_segs); 675 size_t writesize = iov_length(iov, nr_segs);
676 struct dentry *dentry = file->f_dentry; 676 struct gfs2_inode *ip = GFS2_I(file_inode(file));
677 struct gfs2_inode *ip = GFS2_I(dentry->d_inode);
678 int ret; 677 int ret;
679 678
680 ret = gfs2_rs_alloc(ip); 679 ret = gfs2_rs_alloc(ip);
@@ -772,7 +771,7 @@ static void calc_max_reserv(struct gfs2_inode *ip, loff_t max, loff_t *len,
772static long gfs2_fallocate(struct file *file, int mode, loff_t offset, 771static long gfs2_fallocate(struct file *file, int mode, loff_t offset,
773 loff_t len) 772 loff_t len)
774{ 773{
775 struct inode *inode = file->f_path.dentry->d_inode; 774 struct inode *inode = file_inode(file);
776 struct gfs2_sbd *sdp = GFS2_SB(inode); 775 struct gfs2_sbd *sdp = GFS2_SB(inode);
777 struct gfs2_inode *ip = GFS2_I(inode); 776 struct gfs2_inode *ip = GFS2_I(inode);
778 unsigned int data_blocks = 0, ind_blocks = 0, rblocks; 777 unsigned int data_blocks = 0, ind_blocks = 0, rblocks;
@@ -938,7 +937,7 @@ static int do_flock(struct file *file, int cmd, struct file_lock *fl)
938{ 937{
939 struct gfs2_file *fp = file->private_data; 938 struct gfs2_file *fp = file->private_data;
940 struct gfs2_holder *fl_gh = &fp->f_fl_gh; 939 struct gfs2_holder *fl_gh = &fp->f_fl_gh;
941 struct gfs2_inode *ip = GFS2_I(file->f_path.dentry->d_inode); 940 struct gfs2_inode *ip = GFS2_I(file_inode(file));
942 struct gfs2_glock *gl; 941 struct gfs2_glock *gl;
943 unsigned int state; 942 unsigned int state;
944 int flags; 943 int flags;
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 52c2aeaf45ce..d1f51fd73f86 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -1257,7 +1257,7 @@ fail:
1257 1257
1258int gfs2_fitrim(struct file *filp, void __user *argp) 1258int gfs2_fitrim(struct file *filp, void __user *argp)
1259{ 1259{
1260 struct inode *inode = filp->f_dentry->d_inode; 1260 struct inode *inode = file_inode(filp);
1261 struct gfs2_sbd *sdp = GFS2_SB(inode); 1261 struct gfs2_sbd *sdp = GFS2_SB(inode);
1262 struct request_queue *q = bdev_get_queue(sdp->sd_vfs->s_bdev); 1262 struct request_queue *q = bdev_get_queue(sdp->sd_vfs->s_bdev);
1263 struct buffer_head *bh; 1263 struct buffer_head *bh;
diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c
index 597a612834dc..aa5c48044966 100644
--- a/fs/gfs2/sys.c
+++ b/fs/gfs2/sys.c
@@ -103,7 +103,7 @@ static ssize_t freeze_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
103 int n = simple_strtol(buf, NULL, 0); 103 int n = simple_strtol(buf, NULL, 0);
104 104
105 if (!capable(CAP_SYS_ADMIN)) 105 if (!capable(CAP_SYS_ADMIN))
106 return -EACCES; 106 return -EPERM;
107 107
108 switch (n) { 108 switch (n) {
109 case 0: 109 case 0:
@@ -133,7 +133,7 @@ static ssize_t withdraw_show(struct gfs2_sbd *sdp, char *buf)
133static ssize_t withdraw_store(struct gfs2_sbd *sdp, const char *buf, size_t len) 133static ssize_t withdraw_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
134{ 134{
135 if (!capable(CAP_SYS_ADMIN)) 135 if (!capable(CAP_SYS_ADMIN))
136 return -EACCES; 136 return -EPERM;
137 137
138 if (simple_strtol(buf, NULL, 0) != 1) 138 if (simple_strtol(buf, NULL, 0) != 1)
139 return -EINVAL; 139 return -EINVAL;
@@ -148,7 +148,7 @@ static ssize_t statfs_sync_store(struct gfs2_sbd *sdp, const char *buf,
148 size_t len) 148 size_t len)
149{ 149{
150 if (!capable(CAP_SYS_ADMIN)) 150 if (!capable(CAP_SYS_ADMIN))
151 return -EACCES; 151 return -EPERM;
152 152
153 if (simple_strtol(buf, NULL, 0) != 1) 153 if (simple_strtol(buf, NULL, 0) != 1)
154 return -EINVAL; 154 return -EINVAL;
@@ -161,7 +161,7 @@ static ssize_t quota_sync_store(struct gfs2_sbd *sdp, const char *buf,
161 size_t len) 161 size_t len)
162{ 162{
163 if (!capable(CAP_SYS_ADMIN)) 163 if (!capable(CAP_SYS_ADMIN))
164 return -EACCES; 164 return -EPERM;
165 165
166 if (simple_strtol(buf, NULL, 0) != 1) 166 if (simple_strtol(buf, NULL, 0) != 1)
167 return -EINVAL; 167 return -EINVAL;
@@ -178,7 +178,7 @@ static ssize_t quota_refresh_user_store(struct gfs2_sbd *sdp, const char *buf,
178 u32 id; 178 u32 id;
179 179
180 if (!capable(CAP_SYS_ADMIN)) 180 if (!capable(CAP_SYS_ADMIN))
181 return -EACCES; 181 return -EPERM;
182 182
183 id = simple_strtoul(buf, NULL, 0); 183 id = simple_strtoul(buf, NULL, 0);
184 184
@@ -198,7 +198,7 @@ static ssize_t quota_refresh_group_store(struct gfs2_sbd *sdp, const char *buf,
198 u32 id; 198 u32 id;
199 199
200 if (!capable(CAP_SYS_ADMIN)) 200 if (!capable(CAP_SYS_ADMIN))
201 return -EACCES; 201 return -EPERM;
202 202
203 id = simple_strtoul(buf, NULL, 0); 203 id = simple_strtoul(buf, NULL, 0);
204 204
@@ -221,7 +221,7 @@ static ssize_t demote_rq_store(struct gfs2_sbd *sdp, const char *buf, size_t len
221 int rv; 221 int rv;
222 222
223 if (!capable(CAP_SYS_ADMIN)) 223 if (!capable(CAP_SYS_ADMIN))
224 return -EACCES; 224 return -EPERM;
225 225
226 rv = sscanf(buf, "%u:%llu %15s", &gltype, &glnum, 226 rv = sscanf(buf, "%u:%llu %15s", &gltype, &glnum,
227 mode); 227 mode);
@@ -532,7 +532,7 @@ static ssize_t quota_scale_store(struct gfs2_sbd *sdp, const char *buf,
532 unsigned int x, y; 532 unsigned int x, y;
533 533
534 if (!capable(CAP_SYS_ADMIN)) 534 if (!capable(CAP_SYS_ADMIN))
535 return -EACCES; 535 return -EPERM;
536 536
537 if (sscanf(buf, "%u %u", &x, &y) != 2 || !y) 537 if (sscanf(buf, "%u %u", &x, &y) != 2 || !y)
538 return -EINVAL; 538 return -EINVAL;
@@ -551,7 +551,7 @@ static ssize_t tune_set(struct gfs2_sbd *sdp, unsigned int *field,
551 unsigned int x; 551 unsigned int x;
552 552
553 if (!capable(CAP_SYS_ADMIN)) 553 if (!capable(CAP_SYS_ADMIN))
554 return -EACCES; 554 return -EPERM;
555 555
556 x = simple_strtoul(buf, NULL, 0); 556 x = simple_strtoul(buf, NULL, 0);
557 557