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/coda | |
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/coda')
-rw-r--r-- | fs/coda/dir.c | 2 | ||||
-rw-r--r-- | fs/coda/file.c | 12 | ||||
-rw-r--r-- | fs/coda/inode.c | 2 | ||||
-rw-r--r-- | fs/coda/pioctl.c | 2 |
4 files changed, 9 insertions, 9 deletions
diff --git a/fs/coda/dir.c b/fs/coda/dir.c index 49fe52d25600..b7d3a05c062c 100644 --- a/fs/coda/dir.c +++ b/fs/coda/dir.c | |||
@@ -397,7 +397,7 @@ static int coda_readdir(struct file *coda_file, void *buf, filldir_t filldir) | |||
397 | * We can't use vfs_readdir because we have to keep the file | 397 | * We can't use vfs_readdir because we have to keep the file |
398 | * position in sync between the coda_file and the host_file. | 398 | * position in sync between the coda_file and the host_file. |
399 | * and as such we need grab the inode mutex. */ | 399 | * and as such we need grab the inode mutex. */ |
400 | struct inode *host_inode = host_file->f_path.dentry->d_inode; | 400 | struct inode *host_inode = file_inode(host_file); |
401 | 401 | ||
402 | mutex_lock(&host_inode->i_mutex); | 402 | mutex_lock(&host_inode->i_mutex); |
403 | host_file->f_pos = coda_file->f_pos; | 403 | host_file->f_pos = coda_file->f_pos; |
diff --git a/fs/coda/file.c b/fs/coda/file.c index 8edd404e6419..fa4c100bdc7d 100644 --- a/fs/coda/file.c +++ b/fs/coda/file.c | |||
@@ -66,7 +66,7 @@ coda_file_splice_read(struct file *coda_file, loff_t *ppos, | |||
66 | static ssize_t | 66 | static ssize_t |
67 | coda_file_write(struct file *coda_file, const char __user *buf, size_t count, loff_t *ppos) | 67 | coda_file_write(struct file *coda_file, const char __user *buf, size_t count, loff_t *ppos) |
68 | { | 68 | { |
69 | struct inode *host_inode, *coda_inode = coda_file->f_path.dentry->d_inode; | 69 | struct inode *host_inode, *coda_inode = file_inode(coda_file); |
70 | struct coda_file_info *cfi; | 70 | struct coda_file_info *cfi; |
71 | struct file *host_file; | 71 | struct file *host_file; |
72 | ssize_t ret; | 72 | ssize_t ret; |
@@ -78,7 +78,7 @@ coda_file_write(struct file *coda_file, const char __user *buf, size_t count, lo | |||
78 | if (!host_file->f_op || !host_file->f_op->write) | 78 | if (!host_file->f_op || !host_file->f_op->write) |
79 | return -EINVAL; | 79 | return -EINVAL; |
80 | 80 | ||
81 | host_inode = host_file->f_path.dentry->d_inode; | 81 | host_inode = file_inode(host_file); |
82 | mutex_lock(&coda_inode->i_mutex); | 82 | mutex_lock(&coda_inode->i_mutex); |
83 | 83 | ||
84 | ret = host_file->f_op->write(host_file, buf, count, ppos); | 84 | ret = host_file->f_op->write(host_file, buf, count, ppos); |
@@ -106,8 +106,8 @@ coda_file_mmap(struct file *coda_file, struct vm_area_struct *vma) | |||
106 | if (!host_file->f_op || !host_file->f_op->mmap) | 106 | if (!host_file->f_op || !host_file->f_op->mmap) |
107 | return -ENODEV; | 107 | return -ENODEV; |
108 | 108 | ||
109 | coda_inode = coda_file->f_path.dentry->d_inode; | 109 | coda_inode = file_inode(coda_file); |
110 | host_inode = host_file->f_path.dentry->d_inode; | 110 | host_inode = file_inode(host_file); |
111 | 111 | ||
112 | cii = ITOC(coda_inode); | 112 | cii = ITOC(coda_inode); |
113 | spin_lock(&cii->c_lock); | 113 | spin_lock(&cii->c_lock); |
@@ -178,7 +178,7 @@ int coda_release(struct inode *coda_inode, struct file *coda_file) | |||
178 | err = venus_close(coda_inode->i_sb, coda_i2f(coda_inode), | 178 | err = venus_close(coda_inode->i_sb, coda_i2f(coda_inode), |
179 | coda_flags, coda_file->f_cred->fsuid); | 179 | coda_flags, coda_file->f_cred->fsuid); |
180 | 180 | ||
181 | host_inode = cfi->cfi_container->f_path.dentry->d_inode; | 181 | host_inode = file_inode(cfi->cfi_container); |
182 | cii = ITOC(coda_inode); | 182 | cii = ITOC(coda_inode); |
183 | 183 | ||
184 | /* did we mmap this file? */ | 184 | /* did we mmap this file? */ |
@@ -202,7 +202,7 @@ int coda_release(struct inode *coda_inode, struct file *coda_file) | |||
202 | int coda_fsync(struct file *coda_file, loff_t start, loff_t end, int datasync) | 202 | int coda_fsync(struct file *coda_file, loff_t start, loff_t end, int datasync) |
203 | { | 203 | { |
204 | struct file *host_file; | 204 | struct file *host_file; |
205 | struct inode *coda_inode = coda_file->f_path.dentry->d_inode; | 205 | struct inode *coda_inode = file_inode(coda_file); |
206 | struct coda_file_info *cfi; | 206 | struct coda_file_info *cfi; |
207 | int err; | 207 | int err; |
208 | 208 | ||
diff --git a/fs/coda/inode.c b/fs/coda/inode.c index cf674e9179a3..dada9d0abede 100644 --- a/fs/coda/inode.c +++ b/fs/coda/inode.c | |||
@@ -130,7 +130,7 @@ static int get_device_index(struct coda_mount_data *data) | |||
130 | f = fdget(data->fd); | 130 | f = fdget(data->fd); |
131 | if (!f.file) | 131 | if (!f.file) |
132 | goto Ebadf; | 132 | goto Ebadf; |
133 | inode = f.file->f_path.dentry->d_inode; | 133 | inode = file_inode(f.file); |
134 | if (!S_ISCHR(inode->i_mode) || imajor(inode) != CODA_PSDEV_MAJOR) { | 134 | if (!S_ISCHR(inode->i_mode) || imajor(inode) != CODA_PSDEV_MAJOR) { |
135 | fdput(f); | 135 | fdput(f); |
136 | goto Ebadf; | 136 | goto Ebadf; |
diff --git a/fs/coda/pioctl.c b/fs/coda/pioctl.c index ee0981f1375b..3f5de96bbb58 100644 --- a/fs/coda/pioctl.c +++ b/fs/coda/pioctl.c | |||
@@ -52,7 +52,7 @@ static long coda_pioctl(struct file *filp, unsigned int cmd, | |||
52 | struct path path; | 52 | struct path path; |
53 | int error; | 53 | int error; |
54 | struct PioctlData data; | 54 | struct PioctlData data; |
55 | struct inode *inode = filp->f_dentry->d_inode; | 55 | struct inode *inode = file_inode(filp); |
56 | struct inode *target_inode = NULL; | 56 | struct inode *target_inode = NULL; |
57 | struct coda_inode_info *cnp; | 57 | struct coda_inode_info *cnp; |
58 | 58 | ||