diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-26 23:16:07 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-26 23:16:07 -0500 |
commit | d895cb1af15c04c522a25c79cc429076987c089b (patch) | |
tree | 895dc9157e28f603d937a58be664e4e440d5530c /fs/ioctl.c | |
parent | 9626357371b519f2b955fef399647181034a77fe (diff) | |
parent | d3d009cb965eae7e002ea5badf603ea8f4c34915 (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/ioctl.c')
-rw-r--r-- | fs/ioctl.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/ioctl.c b/fs/ioctl.c index 3bdad6d1f268..fd507fb460f8 100644 --- a/fs/ioctl.c +++ b/fs/ioctl.c | |||
@@ -175,7 +175,7 @@ static int ioctl_fiemap(struct file *filp, unsigned long arg) | |||
175 | struct fiemap fiemap; | 175 | struct fiemap fiemap; |
176 | struct fiemap __user *ufiemap = (struct fiemap __user *) arg; | 176 | struct fiemap __user *ufiemap = (struct fiemap __user *) arg; |
177 | struct fiemap_extent_info fieinfo = { 0, }; | 177 | struct fiemap_extent_info fieinfo = { 0, }; |
178 | struct inode *inode = filp->f_path.dentry->d_inode; | 178 | struct inode *inode = file_inode(filp); |
179 | struct super_block *sb = inode->i_sb; | 179 | struct super_block *sb = inode->i_sb; |
180 | u64 len; | 180 | u64 len; |
181 | int error; | 181 | int error; |
@@ -424,7 +424,7 @@ EXPORT_SYMBOL(generic_block_fiemap); | |||
424 | */ | 424 | */ |
425 | int ioctl_preallocate(struct file *filp, void __user *argp) | 425 | int ioctl_preallocate(struct file *filp, void __user *argp) |
426 | { | 426 | { |
427 | struct inode *inode = filp->f_path.dentry->d_inode; | 427 | struct inode *inode = file_inode(filp); |
428 | struct space_resv sr; | 428 | struct space_resv sr; |
429 | 429 | ||
430 | if (copy_from_user(&sr, argp, sizeof(sr))) | 430 | if (copy_from_user(&sr, argp, sizeof(sr))) |
@@ -449,7 +449,7 @@ int ioctl_preallocate(struct file *filp, void __user *argp) | |||
449 | static int file_ioctl(struct file *filp, unsigned int cmd, | 449 | static int file_ioctl(struct file *filp, unsigned int cmd, |
450 | unsigned long arg) | 450 | unsigned long arg) |
451 | { | 451 | { |
452 | struct inode *inode = filp->f_path.dentry->d_inode; | 452 | struct inode *inode = file_inode(filp); |
453 | int __user *p = (int __user *)arg; | 453 | int __user *p = (int __user *)arg; |
454 | 454 | ||
455 | switch (cmd) { | 455 | switch (cmd) { |
@@ -512,7 +512,7 @@ static int ioctl_fioasync(unsigned int fd, struct file *filp, | |||
512 | 512 | ||
513 | static int ioctl_fsfreeze(struct file *filp) | 513 | static int ioctl_fsfreeze(struct file *filp) |
514 | { | 514 | { |
515 | struct super_block *sb = filp->f_path.dentry->d_inode->i_sb; | 515 | struct super_block *sb = file_inode(filp)->i_sb; |
516 | 516 | ||
517 | if (!capable(CAP_SYS_ADMIN)) | 517 | if (!capable(CAP_SYS_ADMIN)) |
518 | return -EPERM; | 518 | return -EPERM; |
@@ -527,7 +527,7 @@ static int ioctl_fsfreeze(struct file *filp) | |||
527 | 527 | ||
528 | static int ioctl_fsthaw(struct file *filp) | 528 | static int ioctl_fsthaw(struct file *filp) |
529 | { | 529 | { |
530 | struct super_block *sb = filp->f_path.dentry->d_inode->i_sb; | 530 | struct super_block *sb = file_inode(filp)->i_sb; |
531 | 531 | ||
532 | if (!capable(CAP_SYS_ADMIN)) | 532 | if (!capable(CAP_SYS_ADMIN)) |
533 | return -EPERM; | 533 | return -EPERM; |
@@ -548,7 +548,7 @@ int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, | |||
548 | { | 548 | { |
549 | int error = 0; | 549 | int error = 0; |
550 | int __user *argp = (int __user *)arg; | 550 | int __user *argp = (int __user *)arg; |
551 | struct inode *inode = filp->f_path.dentry->d_inode; | 551 | struct inode *inode = file_inode(filp); |
552 | 552 | ||
553 | switch (cmd) { | 553 | switch (cmd) { |
554 | case FIOCLEX: | 554 | case FIOCLEX: |