aboutsummaryrefslogtreecommitdiffstats
path: root/fs/coda
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/coda
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/coda')
-rw-r--r--fs/coda/dir.c2
-rw-r--r--fs/coda/file.c12
-rw-r--r--fs/coda/inode.c2
-rw-r--r--fs/coda/pioctl.c2
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,
66static ssize_t 66static ssize_t
67coda_file_write(struct file *coda_file, const char __user *buf, size_t count, loff_t *ppos) 67coda_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)
202int coda_fsync(struct file *coda_file, loff_t start, loff_t end, int datasync) 202int 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