diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-26 18:48:49 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-26 20:22:07 -0400 |
commit | 9ec3a646fe09970f801ab15e0f1694060b9f19af (patch) | |
tree | 697058ca7e1671eda180a3ccc62445686fbc1a31 /fs/hfsplus | |
parent | c8b3fd0ce313443731e8fd6d5a541085eb465f99 (diff) | |
parent | 3cab989afd8d8d1bc3d99fef0e7ed87c31e7b647 (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/hfsplus')
-rw-r--r-- | fs/hfsplus/dir.c | 12 | ||||
-rw-r--r-- | fs/hfsplus/inode.c | 2 | ||||
-rw-r--r-- | fs/hfsplus/ioctl.c | 2 | ||||
-rw-r--r-- | fs/hfsplus/xattr.c | 12 |
4 files changed, 14 insertions, 14 deletions
diff --git a/fs/hfsplus/dir.c b/fs/hfsplus/dir.c index 3074609befc3..d0f39dcbb58e 100644 --- a/fs/hfsplus/dir.c +++ b/fs/hfsplus/dir.c | |||
@@ -81,7 +81,7 @@ again: | |||
81 | HFSPLUS_I(HFSPLUS_SB(sb)->hidden_dir)-> | 81 | HFSPLUS_I(HFSPLUS_SB(sb)->hidden_dir)-> |
82 | create_date || | 82 | create_date || |
83 | entry.file.create_date == | 83 | entry.file.create_date == |
84 | HFSPLUS_I(sb->s_root->d_inode)-> | 84 | HFSPLUS_I(d_inode(sb->s_root))-> |
85 | create_date) && | 85 | create_date) && |
86 | HFSPLUS_SB(sb)->hidden_dir) { | 86 | HFSPLUS_SB(sb)->hidden_dir) { |
87 | struct qstr str; | 87 | struct qstr str; |
@@ -296,8 +296,8 @@ static int hfsplus_link(struct dentry *src_dentry, struct inode *dst_dir, | |||
296 | struct dentry *dst_dentry) | 296 | struct dentry *dst_dentry) |
297 | { | 297 | { |
298 | struct hfsplus_sb_info *sbi = HFSPLUS_SB(dst_dir->i_sb); | 298 | struct hfsplus_sb_info *sbi = HFSPLUS_SB(dst_dir->i_sb); |
299 | struct inode *inode = src_dentry->d_inode; | 299 | struct inode *inode = d_inode(src_dentry); |
300 | struct inode *src_dir = src_dentry->d_parent->d_inode; | 300 | struct inode *src_dir = d_inode(src_dentry->d_parent); |
301 | struct qstr str; | 301 | struct qstr str; |
302 | char name[32]; | 302 | char name[32]; |
303 | u32 cnid, id; | 303 | u32 cnid, id; |
@@ -353,7 +353,7 @@ out: | |||
353 | static int hfsplus_unlink(struct inode *dir, struct dentry *dentry) | 353 | static int hfsplus_unlink(struct inode *dir, struct dentry *dentry) |
354 | { | 354 | { |
355 | struct hfsplus_sb_info *sbi = HFSPLUS_SB(dir->i_sb); | 355 | struct hfsplus_sb_info *sbi = HFSPLUS_SB(dir->i_sb); |
356 | struct inode *inode = dentry->d_inode; | 356 | struct inode *inode = d_inode(dentry); |
357 | struct qstr str; | 357 | struct qstr str; |
358 | char name[32]; | 358 | char name[32]; |
359 | u32 cnid; | 359 | u32 cnid; |
@@ -410,7 +410,7 @@ out: | |||
410 | static int hfsplus_rmdir(struct inode *dir, struct dentry *dentry) | 410 | static int hfsplus_rmdir(struct inode *dir, struct dentry *dentry) |
411 | { | 411 | { |
412 | struct hfsplus_sb_info *sbi = HFSPLUS_SB(dir->i_sb); | 412 | struct hfsplus_sb_info *sbi = HFSPLUS_SB(dir->i_sb); |
413 | struct inode *inode = dentry->d_inode; | 413 | struct inode *inode = d_inode(dentry); |
414 | int res; | 414 | int res; |
415 | 415 | ||
416 | if (inode->i_size != 2) | 416 | if (inode->i_size != 2) |
@@ -529,7 +529,7 @@ static int hfsplus_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
529 | int res; | 529 | int res; |
530 | 530 | ||
531 | /* Unlink destination if it already exists */ | 531 | /* Unlink destination if it already exists */ |
532 | if (new_dentry->d_inode) { | 532 | if (d_really_is_positive(new_dentry)) { |
533 | if (d_is_dir(new_dentry)) | 533 | if (d_is_dir(new_dentry)) |
534 | res = hfsplus_rmdir(new_dir, new_dentry); | 534 | res = hfsplus_rmdir(new_dir, new_dentry); |
535 | else | 535 | else |
diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c index b0afedbef12b..6dd107d7421e 100644 --- a/fs/hfsplus/inode.c +++ b/fs/hfsplus/inode.c | |||
@@ -243,7 +243,7 @@ static int hfsplus_file_release(struct inode *inode, struct file *file) | |||
243 | 243 | ||
244 | static int hfsplus_setattr(struct dentry *dentry, struct iattr *attr) | 244 | static int hfsplus_setattr(struct dentry *dentry, struct iattr *attr) |
245 | { | 245 | { |
246 | struct inode *inode = dentry->d_inode; | 246 | struct inode *inode = d_inode(dentry); |
247 | int error; | 247 | int error; |
248 | 248 | ||
249 | error = inode_change_ok(inode, attr); | 249 | error = inode_change_ok(inode, attr); |
diff --git a/fs/hfsplus/ioctl.c b/fs/hfsplus/ioctl.c index 8e98f5db6ad6..0624ce4e0702 100644 --- a/fs/hfsplus/ioctl.c +++ b/fs/hfsplus/ioctl.c | |||
@@ -26,7 +26,7 @@ | |||
26 | static int hfsplus_ioctl_bless(struct file *file, int __user *user_flags) | 26 | static int hfsplus_ioctl_bless(struct file *file, int __user *user_flags) |
27 | { | 27 | { |
28 | struct dentry *dentry = file->f_path.dentry; | 28 | struct dentry *dentry = file->f_path.dentry; |
29 | struct inode *inode = dentry->d_inode; | 29 | struct inode *inode = d_inode(dentry); |
30 | struct hfsplus_sb_info *sbi = HFSPLUS_SB(inode->i_sb); | 30 | struct hfsplus_sb_info *sbi = HFSPLUS_SB(inode->i_sb); |
31 | struct hfsplus_vh *vh = sbi->s_vhdr; | 31 | struct hfsplus_vh *vh = sbi->s_vhdr; |
32 | struct hfsplus_vh *bvh = sbi->s_backup_vhdr; | 32 | struct hfsplus_vh *bvh = sbi->s_backup_vhdr; |
diff --git a/fs/hfsplus/xattr.c b/fs/hfsplus/xattr.c index 89f262d8fcd8..416b1dbafe51 100644 --- a/fs/hfsplus/xattr.c +++ b/fs/hfsplus/xattr.c | |||
@@ -440,7 +440,7 @@ int hfsplus_setxattr(struct dentry *dentry, const char *name, | |||
440 | return -ENOMEM; | 440 | return -ENOMEM; |
441 | strcpy(xattr_name, prefix); | 441 | strcpy(xattr_name, prefix); |
442 | strcpy(xattr_name + prefixlen, name); | 442 | strcpy(xattr_name + prefixlen, name); |
443 | res = __hfsplus_setxattr(dentry->d_inode, xattr_name, value, size, | 443 | res = __hfsplus_setxattr(d_inode(dentry), xattr_name, value, size, |
444 | flags); | 444 | flags); |
445 | kfree(xattr_name); | 445 | kfree(xattr_name); |
446 | return res; | 446 | return res; |
@@ -600,7 +600,7 @@ ssize_t hfsplus_getxattr(struct dentry *dentry, const char *name, | |||
600 | strcpy(xattr_name, prefix); | 600 | strcpy(xattr_name, prefix); |
601 | strcpy(xattr_name + prefixlen, name); | 601 | strcpy(xattr_name + prefixlen, name); |
602 | 602 | ||
603 | res = __hfsplus_getxattr(dentry->d_inode, xattr_name, value, size); | 603 | res = __hfsplus_getxattr(d_inode(dentry), xattr_name, value, size); |
604 | kfree(xattr_name); | 604 | kfree(xattr_name); |
605 | return res; | 605 | return res; |
606 | 606 | ||
@@ -620,7 +620,7 @@ static ssize_t hfsplus_listxattr_finder_info(struct dentry *dentry, | |||
620 | char *buffer, size_t size) | 620 | char *buffer, size_t size) |
621 | { | 621 | { |
622 | ssize_t res = 0; | 622 | ssize_t res = 0; |
623 | struct inode *inode = dentry->d_inode; | 623 | struct inode *inode = d_inode(dentry); |
624 | struct hfs_find_data fd; | 624 | struct hfs_find_data fd; |
625 | u16 entry_type; | 625 | u16 entry_type; |
626 | u8 folder_finder_info[sizeof(struct DInfo) + sizeof(struct DXInfo)]; | 626 | u8 folder_finder_info[sizeof(struct DInfo) + sizeof(struct DXInfo)]; |
@@ -688,7 +688,7 @@ ssize_t hfsplus_listxattr(struct dentry *dentry, char *buffer, size_t size) | |||
688 | { | 688 | { |
689 | ssize_t err; | 689 | ssize_t err; |
690 | ssize_t res = 0; | 690 | ssize_t res = 0; |
691 | struct inode *inode = dentry->d_inode; | 691 | struct inode *inode = d_inode(dentry); |
692 | struct hfs_find_data fd; | 692 | struct hfs_find_data fd; |
693 | u16 key_len = 0; | 693 | u16 key_len = 0; |
694 | struct hfsplus_attr_key attr_key; | 694 | struct hfsplus_attr_key attr_key; |
@@ -868,7 +868,7 @@ static int hfsplus_osx_getxattr(struct dentry *dentry, const char *name, | |||
868 | * creates), so we pass the name through unmodified (after | 868 | * creates), so we pass the name through unmodified (after |
869 | * ensuring it doesn't conflict with another namespace). | 869 | * ensuring it doesn't conflict with another namespace). |
870 | */ | 870 | */ |
871 | return __hfsplus_getxattr(dentry->d_inode, name, buffer, size); | 871 | return __hfsplus_getxattr(d_inode(dentry), name, buffer, size); |
872 | } | 872 | } |
873 | 873 | ||
874 | static int hfsplus_osx_setxattr(struct dentry *dentry, const char *name, | 874 | static int hfsplus_osx_setxattr(struct dentry *dentry, const char *name, |
@@ -890,7 +890,7 @@ static int hfsplus_osx_setxattr(struct dentry *dentry, const char *name, | |||
890 | * creates), so we pass the name through unmodified (after | 890 | * creates), so we pass the name through unmodified (after |
891 | * ensuring it doesn't conflict with another namespace). | 891 | * ensuring it doesn't conflict with another namespace). |
892 | */ | 892 | */ |
893 | return __hfsplus_setxattr(dentry->d_inode, name, buffer, size, flags); | 893 | return __hfsplus_setxattr(d_inode(dentry), name, buffer, size, flags); |
894 | } | 894 | } |
895 | 895 | ||
896 | static size_t hfsplus_osx_listxattr(struct dentry *dentry, char *list, | 896 | static size_t hfsplus_osx_listxattr(struct dentry *dentry, char *list, |