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/ext3 | |
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/ext3')
-rw-r--r-- | fs/ext3/dir.c | 8 | ||||
-rw-r--r-- | fs/ext3/ioctl.c | 2 | ||||
-rw-r--r-- | fs/ext3/namei.c | 4 |
3 files changed, 7 insertions, 7 deletions
diff --git a/fs/ext3/dir.c b/fs/ext3/dir.c index dd91264ba94f..87eccbbca255 100644 --- a/fs/ext3/dir.c +++ b/fs/ext3/dir.c | |||
@@ -99,7 +99,7 @@ static int ext3_readdir(struct file * filp, | |||
99 | int i, stored; | 99 | int i, stored; |
100 | struct ext3_dir_entry_2 *de; | 100 | struct ext3_dir_entry_2 *de; |
101 | int err; | 101 | int err; |
102 | struct inode *inode = filp->f_path.dentry->d_inode; | 102 | struct inode *inode = file_inode(filp); |
103 | struct super_block *sb = inode->i_sb; | 103 | struct super_block *sb = inode->i_sb; |
104 | int ret = 0; | 104 | int ret = 0; |
105 | int dir_has_error = 0; | 105 | int dir_has_error = 0; |
@@ -114,7 +114,7 @@ static int ext3_readdir(struct file * filp, | |||
114 | * We don't set the inode dirty flag since it's not | 114 | * We don't set the inode dirty flag since it's not |
115 | * critical that it get flushed back to the disk. | 115 | * critical that it get flushed back to the disk. |
116 | */ | 116 | */ |
117 | EXT3_I(filp->f_path.dentry->d_inode)->i_flags &= ~EXT3_INDEX_FL; | 117 | EXT3_I(file_inode(filp))->i_flags &= ~EXT3_INDEX_FL; |
118 | } | 118 | } |
119 | stored = 0; | 119 | stored = 0; |
120 | offset = filp->f_pos & (sb->s_blocksize - 1); | 120 | offset = filp->f_pos & (sb->s_blocksize - 1); |
@@ -457,7 +457,7 @@ static int call_filldir(struct file * filp, void * dirent, | |||
457 | { | 457 | { |
458 | struct dir_private_info *info = filp->private_data; | 458 | struct dir_private_info *info = filp->private_data; |
459 | loff_t curr_pos; | 459 | loff_t curr_pos; |
460 | struct inode *inode = filp->f_path.dentry->d_inode; | 460 | struct inode *inode = file_inode(filp); |
461 | struct super_block * sb; | 461 | struct super_block * sb; |
462 | int error; | 462 | int error; |
463 | 463 | ||
@@ -487,7 +487,7 @@ static int ext3_dx_readdir(struct file * filp, | |||
487 | void * dirent, filldir_t filldir) | 487 | void * dirent, filldir_t filldir) |
488 | { | 488 | { |
489 | struct dir_private_info *info = filp->private_data; | 489 | struct dir_private_info *info = filp->private_data; |
490 | struct inode *inode = filp->f_path.dentry->d_inode; | 490 | struct inode *inode = file_inode(filp); |
491 | struct fname *fname; | 491 | struct fname *fname; |
492 | int ret; | 492 | int ret; |
493 | 493 | ||
diff --git a/fs/ext3/ioctl.c b/fs/ext3/ioctl.c index 677a5c27dc69..4d96e9a64532 100644 --- a/fs/ext3/ioctl.c +++ b/fs/ext3/ioctl.c | |||
@@ -14,7 +14,7 @@ | |||
14 | 14 | ||
15 | long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | 15 | long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) |
16 | { | 16 | { |
17 | struct inode *inode = filp->f_dentry->d_inode; | 17 | struct inode *inode = file_inode(filp); |
18 | struct ext3_inode_info *ei = EXT3_I(inode); | 18 | struct ext3_inode_info *ei = EXT3_I(inode); |
19 | unsigned int flags; | 19 | unsigned int flags; |
20 | unsigned short rsv_window_size; | 20 | unsigned short rsv_window_size; |
diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c index 88f64eb1b6fa..692de13e3596 100644 --- a/fs/ext3/namei.c +++ b/fs/ext3/namei.c | |||
@@ -623,7 +623,7 @@ int ext3_htree_fill_tree(struct file *dir_file, __u32 start_hash, | |||
623 | 623 | ||
624 | dxtrace(printk("In htree_fill_tree, start hash: %x:%x\n", start_hash, | 624 | dxtrace(printk("In htree_fill_tree, start hash: %x:%x\n", start_hash, |
625 | start_minor_hash)); | 625 | start_minor_hash)); |
626 | dir = dir_file->f_path.dentry->d_inode; | 626 | dir = file_inode(dir_file); |
627 | if (!(EXT3_I(dir)->i_flags & EXT3_INDEX_FL)) { | 627 | if (!(EXT3_I(dir)->i_flags & EXT3_INDEX_FL)) { |
628 | hinfo.hash_version = EXT3_SB(dir->i_sb)->s_def_hash_version; | 628 | hinfo.hash_version = EXT3_SB(dir->i_sb)->s_def_hash_version; |
629 | if (hinfo.hash_version <= DX_HASH_TEA) | 629 | if (hinfo.hash_version <= DX_HASH_TEA) |
@@ -637,7 +637,7 @@ int ext3_htree_fill_tree(struct file *dir_file, __u32 start_hash, | |||
637 | } | 637 | } |
638 | hinfo.hash = start_hash; | 638 | hinfo.hash = start_hash; |
639 | hinfo.minor_hash = 0; | 639 | hinfo.minor_hash = 0; |
640 | frame = dx_probe(NULL, dir_file->f_path.dentry->d_inode, &hinfo, frames, &err); | 640 | frame = dx_probe(NULL, file_inode(dir_file), &hinfo, frames, &err); |
641 | if (!frame) | 641 | if (!frame) |
642 | return err; | 642 | return err; |
643 | 643 | ||