aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fat
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-04-26 18:48:49 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-04-26 20:22:07 -0400
commit9ec3a646fe09970f801ab15e0f1694060b9f19af (patch)
tree697058ca7e1671eda180a3ccc62445686fbc1a31 /fs/fat
parentc8b3fd0ce313443731e8fd6d5a541085eb465f99 (diff)
parent3cab989afd8d8d1bc3d99fef0e7ed87c31e7b647 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull fourth vfs update from Al Viro: "d_inode() annotations from David Howells (sat in for-next since before the beginning of merge window) + four assorted fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: RCU pathwalk breakage when running into a symlink overmounting something fix I_DIO_WAKEUP definition direct-io: only inc/dec inode->i_dio_count for file systems fs/9p: fix readdir() VFS: assorted d_backing_inode() annotations VFS: fs/inode.c helpers: d_inode() annotations VFS: fs/cachefiles: d_backing_inode() annotations VFS: fs library helpers: d_inode() annotations VFS: assorted weird filesystems: d_inode() annotations VFS: normal filesystems (and lustre): d_inode() annotations VFS: security/: d_inode() annotations VFS: security/: d_backing_inode() annotations VFS: net/: d_inode() annotations VFS: net/unix: d_backing_inode() annotations VFS: kernel/: d_inode() annotations VFS: audit: d_backing_inode() annotations VFS: Fix up some ->d_inode accesses in the chelsio driver VFS: Cachefiles should perform fs modifications on the top layer only VFS: AF_UNIX sockets should call mknod on the top layer only
Diffstat (limited to 'fs/fat')
-rw-r--r--fs/fat/file.c4
-rw-r--r--fs/fat/namei_msdos.c8
-rw-r--r--fs/fat/namei_vfat.c14
-rw-r--r--fs/fat/nfs.c4
4 files changed, 15 insertions, 15 deletions
diff --git a/fs/fat/file.c b/fs/fat/file.c
index cf50d93565a2..442d50a0e33e 100644
--- a/fs/fat/file.c
+++ b/fs/fat/file.c
@@ -305,7 +305,7 @@ void fat_truncate_blocks(struct inode *inode, loff_t offset)
305 305
306int fat_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) 306int fat_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
307{ 307{
308 struct inode *inode = dentry->d_inode; 308 struct inode *inode = d_inode(dentry);
309 generic_fillattr(inode, stat); 309 generic_fillattr(inode, stat);
310 stat->blksize = MSDOS_SB(inode->i_sb)->cluster_size; 310 stat->blksize = MSDOS_SB(inode->i_sb)->cluster_size;
311 311
@@ -377,7 +377,7 @@ static int fat_allow_set_time(struct msdos_sb_info *sbi, struct inode *inode)
377int fat_setattr(struct dentry *dentry, struct iattr *attr) 377int fat_setattr(struct dentry *dentry, struct iattr *attr)
378{ 378{
379 struct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb); 379 struct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb);
380 struct inode *inode = dentry->d_inode; 380 struct inode *inode = d_inode(dentry);
381 unsigned int ia_valid; 381 unsigned int ia_valid;
382 int error; 382 int error;
383 383
diff --git a/fs/fat/namei_msdos.c b/fs/fat/namei_msdos.c
index cc6a8541b668..b7e2b33aa793 100644
--- a/fs/fat/namei_msdos.c
+++ b/fs/fat/namei_msdos.c
@@ -308,7 +308,7 @@ out:
308static int msdos_rmdir(struct inode *dir, struct dentry *dentry) 308static int msdos_rmdir(struct inode *dir, struct dentry *dentry)
309{ 309{
310 struct super_block *sb = dir->i_sb; 310 struct super_block *sb = dir->i_sb;
311 struct inode *inode = dentry->d_inode; 311 struct inode *inode = d_inode(dentry);
312 struct fat_slot_info sinfo; 312 struct fat_slot_info sinfo;
313 int err; 313 int err;
314 314
@@ -402,7 +402,7 @@ out:
402/***** Unlink a file */ 402/***** Unlink a file */
403static int msdos_unlink(struct inode *dir, struct dentry *dentry) 403static int msdos_unlink(struct inode *dir, struct dentry *dentry)
404{ 404{
405 struct inode *inode = dentry->d_inode; 405 struct inode *inode = d_inode(dentry);
406 struct super_block *sb = inode->i_sb; 406 struct super_block *sb = inode->i_sb;
407 struct fat_slot_info sinfo; 407 struct fat_slot_info sinfo;
408 int err; 408 int err;
@@ -440,8 +440,8 @@ static int do_msdos_rename(struct inode *old_dir, unsigned char *old_name,
440 int err, old_attrs, is_dir, update_dotdot, corrupt = 0; 440 int err, old_attrs, is_dir, update_dotdot, corrupt = 0;
441 441
442 old_sinfo.bh = sinfo.bh = dotdot_bh = NULL; 442 old_sinfo.bh = sinfo.bh = dotdot_bh = NULL;
443 old_inode = old_dentry->d_inode; 443 old_inode = d_inode(old_dentry);
444 new_inode = new_dentry->d_inode; 444 new_inode = d_inode(new_dentry);
445 445
446 err = fat_scan(old_dir, old_name, &old_sinfo); 446 err = fat_scan(old_dir, old_name, &old_sinfo);
447 if (err) { 447 if (err) {
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c
index 7e0974eebd8e..7092584f424a 100644
--- a/fs/fat/namei_vfat.c
+++ b/fs/fat/namei_vfat.c
@@ -33,7 +33,7 @@ static int vfat_revalidate_shortname(struct dentry *dentry)
33{ 33{
34 int ret = 1; 34 int ret = 1;
35 spin_lock(&dentry->d_lock); 35 spin_lock(&dentry->d_lock);
36 if (dentry->d_time != dentry->d_parent->d_inode->i_version) 36 if (dentry->d_time != d_inode(dentry->d_parent)->i_version)
37 ret = 0; 37 ret = 0;
38 spin_unlock(&dentry->d_lock); 38 spin_unlock(&dentry->d_lock);
39 return ret; 39 return ret;
@@ -45,7 +45,7 @@ static int vfat_revalidate(struct dentry *dentry, unsigned int flags)
45 return -ECHILD; 45 return -ECHILD;
46 46
47 /* This is not negative dentry. Always valid. */ 47 /* This is not negative dentry. Always valid. */
48 if (dentry->d_inode) 48 if (d_really_is_positive(dentry))
49 return 1; 49 return 1;
50 return vfat_revalidate_shortname(dentry); 50 return vfat_revalidate_shortname(dentry);
51} 51}
@@ -65,7 +65,7 @@ static int vfat_revalidate_ci(struct dentry *dentry, unsigned int flags)
65 * positive dentry isn't good idea. So it's unsupported like 65 * positive dentry isn't good idea. So it's unsupported like
66 * rename("filename", "FILENAME") for now. 66 * rename("filename", "FILENAME") for now.
67 */ 67 */
68 if (dentry->d_inode) 68 if (d_really_is_positive(dentry))
69 return 1; 69 return 1;
70 70
71 /* 71 /*
@@ -801,7 +801,7 @@ out:
801 801
802static int vfat_rmdir(struct inode *dir, struct dentry *dentry) 802static int vfat_rmdir(struct inode *dir, struct dentry *dentry)
803{ 803{
804 struct inode *inode = dentry->d_inode; 804 struct inode *inode = d_inode(dentry);
805 struct super_block *sb = dir->i_sb; 805 struct super_block *sb = dir->i_sb;
806 struct fat_slot_info sinfo; 806 struct fat_slot_info sinfo;
807 int err; 807 int err;
@@ -832,7 +832,7 @@ out:
832 832
833static int vfat_unlink(struct inode *dir, struct dentry *dentry) 833static int vfat_unlink(struct inode *dir, struct dentry *dentry)
834{ 834{
835 struct inode *inode = dentry->d_inode; 835 struct inode *inode = d_inode(dentry);
836 struct super_block *sb = dir->i_sb; 836 struct super_block *sb = dir->i_sb;
837 struct fat_slot_info sinfo; 837 struct fat_slot_info sinfo;
838 int err; 838 int err;
@@ -915,8 +915,8 @@ static int vfat_rename(struct inode *old_dir, struct dentry *old_dentry,
915 struct super_block *sb = old_dir->i_sb; 915 struct super_block *sb = old_dir->i_sb;
916 916
917 old_sinfo.bh = sinfo.bh = dotdot_bh = NULL; 917 old_sinfo.bh = sinfo.bh = dotdot_bh = NULL;
918 old_inode = old_dentry->d_inode; 918 old_inode = d_inode(old_dentry);
919 new_inode = new_dentry->d_inode; 919 new_inode = d_inode(new_dentry);
920 mutex_lock(&MSDOS_SB(sb)->s_lock); 920 mutex_lock(&MSDOS_SB(sb)->s_lock);
921 err = vfat_find(old_dir, &old_dentry->d_name, &old_sinfo); 921 err = vfat_find(old_dir, &old_dentry->d_name, &old_sinfo);
922 if (err) 922 if (err)
diff --git a/fs/fat/nfs.c b/fs/fat/nfs.c
index 93e14933dcb6..eb192656fba2 100644
--- a/fs/fat/nfs.c
+++ b/fs/fat/nfs.c
@@ -266,7 +266,7 @@ struct inode *fat_rebuild_parent(struct super_block *sb, int parent_logstart)
266 * Find the parent for a directory that is not currently connected to 266 * Find the parent for a directory that is not currently connected to
267 * the filesystem root. 267 * the filesystem root.
268 * 268 *
269 * On entry, the caller holds child_dir->d_inode->i_mutex. 269 * On entry, the caller holds d_inode(child_dir)->i_mutex.
270 */ 270 */
271static struct dentry *fat_get_parent(struct dentry *child_dir) 271static struct dentry *fat_get_parent(struct dentry *child_dir)
272{ 272{
@@ -276,7 +276,7 @@ static struct dentry *fat_get_parent(struct dentry *child_dir)
276 struct inode *parent_inode = NULL; 276 struct inode *parent_inode = NULL;
277 struct msdos_sb_info *sbi = MSDOS_SB(sb); 277 struct msdos_sb_info *sbi = MSDOS_SB(sb);
278 278
279 if (!fat_get_dotdot_entry(child_dir->d_inode, &bh, &de)) { 279 if (!fat_get_dotdot_entry(d_inode(child_dir), &bh, &de)) {
280 int parent_logstart = fat_get_start(sbi, de); 280 int parent_logstart = fat_get_start(sbi, de);
281 parent_inode = fat_dget(sb, parent_logstart); 281 parent_inode = fat_dget(sb, parent_logstart);
282 if (!parent_inode && sbi->options.nfs == FAT_NFS_NOSTALE_RO) 282 if (!parent_inode && sbi->options.nfs == FAT_NFS_NOSTALE_RO)