diff options
Diffstat (limited to 'fs/libfs.c')
| -rw-r--r-- | fs/libfs.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/fs/libfs.c b/fs/libfs.c index 62baa0387d6e..a3accdf528ad 100644 --- a/fs/libfs.c +++ b/fs/libfs.c | |||
| @@ -201,9 +201,8 @@ static const struct super_operations simple_super_operations = { | |||
| 201 | * Common helper for pseudo-filesystems (sockfs, pipefs, bdev - stuff that | 201 | * Common helper for pseudo-filesystems (sockfs, pipefs, bdev - stuff that |
| 202 | * will never be mountable) | 202 | * will never be mountable) |
| 203 | */ | 203 | */ |
| 204 | int get_sb_pseudo(struct file_system_type *fs_type, char *name, | 204 | struct dentry *mount_pseudo(struct file_system_type *fs_type, char *name, |
| 205 | const struct super_operations *ops, unsigned long magic, | 205 | const struct super_operations *ops, unsigned long magic) |
| 206 | struct vfsmount *mnt) | ||
| 207 | { | 206 | { |
| 208 | struct super_block *s = sget(fs_type, NULL, set_anon_super, NULL); | 207 | struct super_block *s = sget(fs_type, NULL, set_anon_super, NULL); |
| 209 | struct dentry *dentry; | 208 | struct dentry *dentry; |
| @@ -211,7 +210,7 @@ int get_sb_pseudo(struct file_system_type *fs_type, char *name, | |||
| 211 | struct qstr d_name = {.name = name, .len = strlen(name)}; | 210 | struct qstr d_name = {.name = name, .len = strlen(name)}; |
| 212 | 211 | ||
| 213 | if (IS_ERR(s)) | 212 | if (IS_ERR(s)) |
| 214 | return PTR_ERR(s); | 213 | return ERR_CAST(s); |
| 215 | 214 | ||
| 216 | s->s_flags = MS_NOUSER; | 215 | s->s_flags = MS_NOUSER; |
| 217 | s->s_maxbytes = MAX_LFS_FILESIZE; | 216 | s->s_maxbytes = MAX_LFS_FILESIZE; |
| @@ -241,12 +240,11 @@ int get_sb_pseudo(struct file_system_type *fs_type, char *name, | |||
| 241 | d_instantiate(dentry, root); | 240 | d_instantiate(dentry, root); |
| 242 | s->s_root = dentry; | 241 | s->s_root = dentry; |
| 243 | s->s_flags |= MS_ACTIVE; | 242 | s->s_flags |= MS_ACTIVE; |
| 244 | simple_set_mnt(mnt, s); | 243 | return dget(s->s_root); |
| 245 | return 0; | ||
| 246 | 244 | ||
| 247 | Enomem: | 245 | Enomem: |
| 248 | deactivate_locked_super(s); | 246 | deactivate_locked_super(s); |
| 249 | return -ENOMEM; | 247 | return ERR_PTR(-ENOMEM); |
| 250 | } | 248 | } |
| 251 | 249 | ||
| 252 | int simple_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry) | 250 | int simple_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry) |
| @@ -255,7 +253,7 @@ int simple_link(struct dentry *old_dentry, struct inode *dir, struct dentry *den | |||
| 255 | 253 | ||
| 256 | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; | 254 | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; |
| 257 | inc_nlink(inode); | 255 | inc_nlink(inode); |
| 258 | atomic_inc(&inode->i_count); | 256 | ihold(inode); |
| 259 | dget(dentry); | 257 | dget(dentry); |
| 260 | d_instantiate(dentry, inode); | 258 | d_instantiate(dentry, inode); |
| 261 | return 0; | 259 | return 0; |
| @@ -892,10 +890,6 @@ EXPORT_SYMBOL_GPL(generic_fh_to_parent); | |||
| 892 | */ | 890 | */ |
| 893 | int generic_file_fsync(struct file *file, int datasync) | 891 | int generic_file_fsync(struct file *file, int datasync) |
| 894 | { | 892 | { |
| 895 | struct writeback_control wbc = { | ||
| 896 | .sync_mode = WB_SYNC_ALL, | ||
| 897 | .nr_to_write = 0, /* metadata-only; caller takes care of data */ | ||
| 898 | }; | ||
| 899 | struct inode *inode = file->f_mapping->host; | 893 | struct inode *inode = file->f_mapping->host; |
| 900 | int err; | 894 | int err; |
| 901 | int ret; | 895 | int ret; |
| @@ -906,7 +900,7 @@ int generic_file_fsync(struct file *file, int datasync) | |||
| 906 | if (datasync && !(inode->i_state & I_DIRTY_DATASYNC)) | 900 | if (datasync && !(inode->i_state & I_DIRTY_DATASYNC)) |
| 907 | return ret; | 901 | return ret; |
| 908 | 902 | ||
| 909 | err = sync_inode(inode, &wbc); | 903 | err = sync_inode_metadata(inode, 1); |
| 910 | if (ret == 0) | 904 | if (ret == 0) |
| 911 | ret = err; | 905 | ret = err; |
| 912 | return ret; | 906 | return ret; |
| @@ -955,7 +949,7 @@ EXPORT_SYMBOL(dcache_dir_lseek); | |||
| 955 | EXPORT_SYMBOL(dcache_dir_open); | 949 | EXPORT_SYMBOL(dcache_dir_open); |
| 956 | EXPORT_SYMBOL(dcache_readdir); | 950 | EXPORT_SYMBOL(dcache_readdir); |
| 957 | EXPORT_SYMBOL(generic_read_dir); | 951 | EXPORT_SYMBOL(generic_read_dir); |
| 958 | EXPORT_SYMBOL(get_sb_pseudo); | 952 | EXPORT_SYMBOL(mount_pseudo); |
| 959 | EXPORT_SYMBOL(simple_write_begin); | 953 | EXPORT_SYMBOL(simple_write_begin); |
| 960 | EXPORT_SYMBOL(simple_write_end); | 954 | EXPORT_SYMBOL(simple_write_end); |
| 961 | EXPORT_SYMBOL(simple_dir_inode_operations); | 955 | EXPORT_SYMBOL(simple_dir_inode_operations); |
