diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/cifs/cifsfs.c | 1 | ||||
| -rw-r--r-- | fs/compat.c | 15 | ||||
| -rw-r--r-- | fs/ext2/ialloc.c | 1 | ||||
| -rw-r--r-- | fs/ext2/inode.c | 2 | ||||
| -rw-r--r-- | fs/ext3/super.c | 4 | ||||
| -rw-r--r-- | fs/ext4/super.c | 2 | ||||
| -rw-r--r-- | fs/freevxfs/vxfs_super.c | 1 | ||||
| -rw-r--r-- | fs/hostfs/hostfs_kern.c | 10 | ||||
| -rw-r--r-- | fs/hpfs/super.c | 1 | ||||
| -rw-r--r-- | fs/isofs/inode.c | 1 | ||||
| -rw-r--r-- | fs/nfs/super.c | 1 | ||||
| -rw-r--r-- | fs/nfsd/nfs4state.c | 36 | ||||
| -rw-r--r-- | fs/pipe.c | 3 | ||||
| -rw-r--r-- | fs/quota/dquot.c | 5 | ||||
| -rw-r--r-- | fs/reiserfs/super.c | 4 | ||||
| -rw-r--r-- | fs/squashfs/super.c | 1 | ||||
| -rw-r--r-- | fs/sysv/super.c | 1 | ||||
| -rw-r--r-- | fs/udf/super.c | 1 |
18 files changed, 33 insertions, 57 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 1a052c0eee8e..3cf8a15af916 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
| @@ -777,6 +777,7 @@ struct file_system_type cifs_fs_type = { | |||
| 777 | .kill_sb = cifs_kill_sb, | 777 | .kill_sb = cifs_kill_sb, |
| 778 | /* .fs_flags */ | 778 | /* .fs_flags */ |
| 779 | }; | 779 | }; |
| 780 | MODULE_ALIAS_FS("cifs"); | ||
| 780 | const struct inode_operations cifs_dir_inode_ops = { | 781 | const struct inode_operations cifs_dir_inode_ops = { |
| 781 | .create = cifs_create, | 782 | .create = cifs_create, |
| 782 | .atomic_open = cifs_atomic_open, | 783 | .atomic_open = cifs_atomic_open, |
diff --git a/fs/compat.c b/fs/compat.c index fe40fde29111..d487985dd0ea 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
| @@ -558,6 +558,10 @@ ssize_t compat_rw_copy_check_uvector(int type, | |||
| 558 | } | 558 | } |
| 559 | *ret_pointer = iov; | 559 | *ret_pointer = iov; |
| 560 | 560 | ||
| 561 | ret = -EFAULT; | ||
| 562 | if (!access_ok(VERIFY_READ, uvector, nr_segs*sizeof(*uvector))) | ||
| 563 | goto out; | ||
| 564 | |||
| 561 | /* | 565 | /* |
| 562 | * Single unix specification: | 566 | * Single unix specification: |
| 563 | * We should -EINVAL if an element length is not >= 0 and fitting an | 567 | * We should -EINVAL if an element length is not >= 0 and fitting an |
| @@ -1080,17 +1084,12 @@ static ssize_t compat_do_readv_writev(int type, struct file *file, | |||
| 1080 | if (!file->f_op) | 1084 | if (!file->f_op) |
| 1081 | goto out; | 1085 | goto out; |
| 1082 | 1086 | ||
| 1083 | ret = -EFAULT; | 1087 | ret = compat_rw_copy_check_uvector(type, uvector, nr_segs, |
| 1084 | if (!access_ok(VERIFY_READ, uvector, nr_segs*sizeof(*uvector))) | ||
| 1085 | goto out; | ||
| 1086 | |||
| 1087 | tot_len = compat_rw_copy_check_uvector(type, uvector, nr_segs, | ||
| 1088 | UIO_FASTIOV, iovstack, &iov); | 1088 | UIO_FASTIOV, iovstack, &iov); |
| 1089 | if (tot_len == 0) { | 1089 | if (ret <= 0) |
| 1090 | ret = 0; | ||
| 1091 | goto out; | 1090 | goto out; |
| 1092 | } | ||
| 1093 | 1091 | ||
| 1092 | tot_len = ret; | ||
| 1094 | ret = rw_verify_area(type, file, pos, tot_len); | 1093 | ret = rw_verify_area(type, file, pos, tot_len); |
| 1095 | if (ret < 0) | 1094 | if (ret < 0) |
| 1096 | goto out; | 1095 | goto out; |
diff --git a/fs/ext2/ialloc.c b/fs/ext2/ialloc.c index 8f370e012e61..7cadd823bb31 100644 --- a/fs/ext2/ialloc.c +++ b/fs/ext2/ialloc.c | |||
| @@ -118,7 +118,6 @@ void ext2_free_inode (struct inode * inode) | |||
| 118 | * as writing the quota to disk may need the lock as well. | 118 | * as writing the quota to disk may need the lock as well. |
| 119 | */ | 119 | */ |
| 120 | /* Quota is already initialized in iput() */ | 120 | /* Quota is already initialized in iput() */ |
| 121 | ext2_xattr_delete_inode(inode); | ||
| 122 | dquot_free_inode(inode); | 121 | dquot_free_inode(inode); |
| 123 | dquot_drop(inode); | 122 | dquot_drop(inode); |
| 124 | 123 | ||
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c index c3881e56662e..fe60cc1117d8 100644 --- a/fs/ext2/inode.c +++ b/fs/ext2/inode.c | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | #include "ext2.h" | 34 | #include "ext2.h" |
| 35 | #include "acl.h" | 35 | #include "acl.h" |
| 36 | #include "xip.h" | 36 | #include "xip.h" |
| 37 | #include "xattr.h" | ||
| 37 | 38 | ||
| 38 | static int __ext2_write_inode(struct inode *inode, int do_sync); | 39 | static int __ext2_write_inode(struct inode *inode, int do_sync); |
| 39 | 40 | ||
| @@ -88,6 +89,7 @@ void ext2_evict_inode(struct inode * inode) | |||
| 88 | inode->i_size = 0; | 89 | inode->i_size = 0; |
| 89 | if (inode->i_blocks) | 90 | if (inode->i_blocks) |
| 90 | ext2_truncate_blocks(inode, 0); | 91 | ext2_truncate_blocks(inode, 0); |
| 92 | ext2_xattr_delete_inode(inode); | ||
| 91 | } | 93 | } |
| 92 | 94 | ||
| 93 | invalidate_inode_buffers(inode); | 95 | invalidate_inode_buffers(inode); |
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 1d6e2ed85322..fb5120a5505c 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c | |||
| @@ -353,7 +353,7 @@ static struct block_device *ext3_blkdev_get(dev_t dev, struct super_block *sb) | |||
| 353 | return bdev; | 353 | return bdev; |
| 354 | 354 | ||
| 355 | fail: | 355 | fail: |
| 356 | ext3_msg(sb, "error: failed to open journal device %s: %ld", | 356 | ext3_msg(sb, KERN_ERR, "error: failed to open journal device %s: %ld", |
| 357 | __bdevname(dev, b), PTR_ERR(bdev)); | 357 | __bdevname(dev, b), PTR_ERR(bdev)); |
| 358 | 358 | ||
| 359 | return NULL; | 359 | return NULL; |
| @@ -887,7 +887,7 @@ static ext3_fsblk_t get_sb_block(void **data, struct super_block *sb) | |||
| 887 | /*todo: use simple_strtoll with >32bit ext3 */ | 887 | /*todo: use simple_strtoll with >32bit ext3 */ |
| 888 | sb_block = simple_strtoul(options, &options, 0); | 888 | sb_block = simple_strtoul(options, &options, 0); |
| 889 | if (*options && *options != ',') { | 889 | if (*options && *options != ',') { |
| 890 | ext3_msg(sb, "error: invalid sb specification: %s", | 890 | ext3_msg(sb, KERN_ERR, "error: invalid sb specification: %s", |
| 891 | (char *) *data); | 891 | (char *) *data); |
| 892 | return 1; | 892 | return 1; |
| 893 | } | 893 | } |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 34e855219231..b3818b48f418 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
| @@ -91,6 +91,7 @@ static struct file_system_type ext2_fs_type = { | |||
| 91 | .fs_flags = FS_REQUIRES_DEV, | 91 | .fs_flags = FS_REQUIRES_DEV, |
| 92 | }; | 92 | }; |
| 93 | MODULE_ALIAS_FS("ext2"); | 93 | MODULE_ALIAS_FS("ext2"); |
| 94 | MODULE_ALIAS("ext2"); | ||
| 94 | #define IS_EXT2_SB(sb) ((sb)->s_bdev->bd_holder == &ext2_fs_type) | 95 | #define IS_EXT2_SB(sb) ((sb)->s_bdev->bd_holder == &ext2_fs_type) |
| 95 | #else | 96 | #else |
| 96 | #define IS_EXT2_SB(sb) (0) | 97 | #define IS_EXT2_SB(sb) (0) |
| @@ -106,6 +107,7 @@ static struct file_system_type ext3_fs_type = { | |||
| 106 | .fs_flags = FS_REQUIRES_DEV, | 107 | .fs_flags = FS_REQUIRES_DEV, |
| 107 | }; | 108 | }; |
| 108 | MODULE_ALIAS_FS("ext3"); | 109 | MODULE_ALIAS_FS("ext3"); |
| 110 | MODULE_ALIAS("ext3"); | ||
| 109 | #define IS_EXT3_SB(sb) ((sb)->s_bdev->bd_holder == &ext3_fs_type) | 111 | #define IS_EXT3_SB(sb) ((sb)->s_bdev->bd_holder == &ext3_fs_type) |
| 110 | #else | 112 | #else |
| 111 | #define IS_EXT3_SB(sb) (0) | 113 | #define IS_EXT3_SB(sb) (0) |
diff --git a/fs/freevxfs/vxfs_super.c b/fs/freevxfs/vxfs_super.c index 455074308069..e37eb274e492 100644 --- a/fs/freevxfs/vxfs_super.c +++ b/fs/freevxfs/vxfs_super.c | |||
| @@ -258,6 +258,7 @@ static struct file_system_type vxfs_fs_type = { | |||
| 258 | .fs_flags = FS_REQUIRES_DEV, | 258 | .fs_flags = FS_REQUIRES_DEV, |
| 259 | }; | 259 | }; |
| 260 | MODULE_ALIAS_FS("vxfs"); /* makes mount -t vxfs autoload the module */ | 260 | MODULE_ALIAS_FS("vxfs"); /* makes mount -t vxfs autoload the module */ |
| 261 | MODULE_ALIAS("vxfs"); | ||
| 261 | 262 | ||
| 262 | static int __init | 263 | static int __init |
| 263 | vxfs_init(void) | 264 | vxfs_init(void) |
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index fbabb906066f..0f6e52d22b84 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c | |||
| @@ -845,15 +845,8 @@ int hostfs_setattr(struct dentry *dentry, struct iattr *attr) | |||
| 845 | return err; | 845 | return err; |
| 846 | 846 | ||
| 847 | if ((attr->ia_valid & ATTR_SIZE) && | 847 | if ((attr->ia_valid & ATTR_SIZE) && |
| 848 | attr->ia_size != i_size_read(inode)) { | 848 | attr->ia_size != i_size_read(inode)) |
| 849 | int error; | ||
| 850 | |||
| 851 | error = inode_newsize_ok(inode, attr->ia_size); | ||
| 852 | if (error) | ||
| 853 | return error; | ||
| 854 | |||
| 855 | truncate_setsize(inode, attr->ia_size); | 849 | truncate_setsize(inode, attr->ia_size); |
| 856 | } | ||
| 857 | 850 | ||
| 858 | setattr_copy(inode, attr); | 851 | setattr_copy(inode, attr); |
| 859 | mark_inode_dirty(inode); | 852 | mark_inode_dirty(inode); |
| @@ -993,6 +986,7 @@ static struct file_system_type hostfs_type = { | |||
| 993 | .kill_sb = hostfs_kill_sb, | 986 | .kill_sb = hostfs_kill_sb, |
| 994 | .fs_flags = 0, | 987 | .fs_flags = 0, |
| 995 | }; | 988 | }; |
| 989 | MODULE_ALIAS_FS("hostfs"); | ||
| 996 | 990 | ||
| 997 | static int __init init_hostfs(void) | 991 | static int __init init_hostfs(void) |
| 998 | { | 992 | { |
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c index a3076228523d..a0617e706957 100644 --- a/fs/hpfs/super.c +++ b/fs/hpfs/super.c | |||
| @@ -688,6 +688,7 @@ static struct file_system_type hpfs_fs_type = { | |||
| 688 | .kill_sb = kill_block_super, | 688 | .kill_sb = kill_block_super, |
| 689 | .fs_flags = FS_REQUIRES_DEV, | 689 | .fs_flags = FS_REQUIRES_DEV, |
| 690 | }; | 690 | }; |
| 691 | MODULE_ALIAS_FS("hpfs"); | ||
| 691 | 692 | ||
| 692 | static int __init init_hpfs_fs(void) | 693 | static int __init init_hpfs_fs(void) |
| 693 | { | 694 | { |
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c index a67f16e846a2..d9b8aebdeb22 100644 --- a/fs/isofs/inode.c +++ b/fs/isofs/inode.c | |||
| @@ -1557,6 +1557,7 @@ static struct file_system_type iso9660_fs_type = { | |||
| 1557 | .fs_flags = FS_REQUIRES_DEV, | 1557 | .fs_flags = FS_REQUIRES_DEV, |
| 1558 | }; | 1558 | }; |
| 1559 | MODULE_ALIAS_FS("iso9660"); | 1559 | MODULE_ALIAS_FS("iso9660"); |
| 1560 | MODULE_ALIAS("iso9660"); | ||
| 1560 | 1561 | ||
| 1561 | static int __init init_iso9660_fs(void) | 1562 | static int __init init_iso9660_fs(void) |
| 1562 | { | 1563 | { |
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 95cdcb208dfb..2f8a29db0f1b 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c | |||
| @@ -335,6 +335,7 @@ struct file_system_type nfs4_fs_type = { | |||
| 335 | .fs_flags = FS_RENAME_DOES_D_MOVE|FS_BINARY_MOUNTDATA, | 335 | .fs_flags = FS_RENAME_DOES_D_MOVE|FS_BINARY_MOUNTDATA, |
| 336 | }; | 336 | }; |
| 337 | MODULE_ALIAS_FS("nfs4"); | 337 | MODULE_ALIAS_FS("nfs4"); |
| 338 | MODULE_ALIAS("nfs4"); | ||
| 338 | EXPORT_SYMBOL_GPL(nfs4_fs_type); | 339 | EXPORT_SYMBOL_GPL(nfs4_fs_type); |
| 339 | 340 | ||
| 340 | static int __init register_nfs4_fs(void) | 341 | static int __init register_nfs4_fs(void) |
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 16d39c6c4fbb..2e27430b9070 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
| @@ -230,37 +230,6 @@ static void nfs4_file_put_access(struct nfs4_file *fp, int oflag) | |||
| 230 | __nfs4_file_put_access(fp, oflag); | 230 | __nfs4_file_put_access(fp, oflag); |
| 231 | } | 231 | } |
| 232 | 232 | ||
| 233 | static inline int get_new_stid(struct nfs4_stid *stid) | ||
| 234 | { | ||
| 235 | static int min_stateid = 0; | ||
| 236 | struct idr *stateids = &stid->sc_client->cl_stateids; | ||
| 237 | int new_stid; | ||
| 238 | int error; | ||
| 239 | |||
| 240 | error = idr_get_new_above(stateids, stid, min_stateid, &new_stid); | ||
| 241 | /* | ||
| 242 | * Note: the necessary preallocation was done in | ||
| 243 | * nfs4_alloc_stateid(). The idr code caps the number of | ||
| 244 | * preallocations that can exist at a time, but the state lock | ||
| 245 | * prevents anyone from using ours before we get here: | ||
| 246 | */ | ||
| 247 | WARN_ON_ONCE(error); | ||
| 248 | /* | ||
| 249 | * It shouldn't be a problem to reuse an opaque stateid value. | ||
| 250 | * I don't think it is for 4.1. But with 4.0 I worry that, for | ||
| 251 | * example, a stray write retransmission could be accepted by | ||
| 252 | * the server when it should have been rejected. Therefore, | ||
| 253 | * adopt a trick from the sctp code to attempt to maximize the | ||
| 254 | * amount of time until an id is reused, by ensuring they always | ||
| 255 | * "increase" (mod INT_MAX): | ||
| 256 | */ | ||
| 257 | |||
| 258 | min_stateid = new_stid+1; | ||
| 259 | if (min_stateid == INT_MAX) | ||
| 260 | min_stateid = 0; | ||
| 261 | return new_stid; | ||
| 262 | } | ||
| 263 | |||
| 264 | static struct nfs4_stid *nfs4_alloc_stid(struct nfs4_client *cl, struct | 233 | static struct nfs4_stid *nfs4_alloc_stid(struct nfs4_client *cl, struct |
| 265 | kmem_cache *slab) | 234 | kmem_cache *slab) |
| 266 | { | 235 | { |
| @@ -273,9 +242,8 @@ kmem_cache *slab) | |||
| 273 | if (!stid) | 242 | if (!stid) |
| 274 | return NULL; | 243 | return NULL; |
| 275 | 244 | ||
| 276 | if (!idr_pre_get(stateids, GFP_KERNEL)) | 245 | new_id = idr_alloc(stateids, stid, min_stateid, 0, GFP_KERNEL); |
| 277 | goto out_free; | 246 | if (new_id < 0) |
| 278 | if (idr_get_new_above(stateids, stid, min_stateid, &new_id)) | ||
| 279 | goto out_free; | 247 | goto out_free; |
| 280 | stid->sc_client = cl; | 248 | stid->sc_client = cl; |
| 281 | stid->sc_type = 0; | 249 | stid->sc_type = 0; |
| @@ -863,6 +863,9 @@ pipe_rdwr_open(struct inode *inode, struct file *filp) | |||
| 863 | { | 863 | { |
| 864 | int ret = -ENOENT; | 864 | int ret = -ENOENT; |
| 865 | 865 | ||
| 866 | if (!(filp->f_mode & (FMODE_READ|FMODE_WRITE))) | ||
| 867 | return -EINVAL; | ||
| 868 | |||
| 866 | mutex_lock(&inode->i_mutex); | 869 | mutex_lock(&inode->i_mutex); |
| 867 | 870 | ||
| 868 | if (inode->i_pipe) { | 871 | if (inode->i_pipe) { |
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index 05ae3c97f7a5..3e64169ef527 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c | |||
| @@ -1439,8 +1439,11 @@ static void __dquot_initialize(struct inode *inode, int type) | |||
| 1439 | * did a write before quota was turned on | 1439 | * did a write before quota was turned on |
| 1440 | */ | 1440 | */ |
| 1441 | rsv = inode_get_rsv_space(inode); | 1441 | rsv = inode_get_rsv_space(inode); |
| 1442 | if (unlikely(rsv)) | 1442 | if (unlikely(rsv)) { |
| 1443 | spin_lock(&dq_data_lock); | ||
| 1443 | dquot_resv_space(inode->i_dquot[cnt], rsv); | 1444 | dquot_resv_space(inode->i_dquot[cnt], rsv); |
| 1445 | spin_unlock(&dq_data_lock); | ||
| 1446 | } | ||
| 1444 | } | 1447 | } |
| 1445 | } | 1448 | } |
| 1446 | out_err: | 1449 | out_err: |
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 194113b1b11b..f8a23c3078f8 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
| @@ -1147,8 +1147,7 @@ static int reiserfs_parse_options(struct super_block *s, char *options, /* strin | |||
| 1147 | "on filesystem root."); | 1147 | "on filesystem root."); |
| 1148 | return 0; | 1148 | return 0; |
| 1149 | } | 1149 | } |
| 1150 | qf_names[qtype] = | 1150 | qf_names[qtype] = kstrdup(arg, GFP_KERNEL); |
| 1151 | kmalloc(strlen(arg) + 1, GFP_KERNEL); | ||
| 1152 | if (!qf_names[qtype]) { | 1151 | if (!qf_names[qtype]) { |
| 1153 | reiserfs_warning(s, "reiserfs-2502", | 1152 | reiserfs_warning(s, "reiserfs-2502", |
| 1154 | "not enough memory " | 1153 | "not enough memory " |
| @@ -1156,7 +1155,6 @@ static int reiserfs_parse_options(struct super_block *s, char *options, /* strin | |||
| 1156 | "quotafile name."); | 1155 | "quotafile name."); |
| 1157 | return 0; | 1156 | return 0; |
| 1158 | } | 1157 | } |
| 1159 | strcpy(qf_names[qtype], arg); | ||
| 1160 | if (qtype == USRQUOTA) | 1158 | if (qtype == USRQUOTA) |
| 1161 | *mount_options |= 1 << REISERFS_USRQUOTA; | 1159 | *mount_options |= 1 << REISERFS_USRQUOTA; |
| 1162 | else | 1160 | else |
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c index 260e3928d4f5..60553a9053ca 100644 --- a/fs/squashfs/super.c +++ b/fs/squashfs/super.c | |||
| @@ -489,6 +489,7 @@ static struct file_system_type squashfs_fs_type = { | |||
| 489 | .kill_sb = kill_block_super, | 489 | .kill_sb = kill_block_super, |
| 490 | .fs_flags = FS_REQUIRES_DEV | 490 | .fs_flags = FS_REQUIRES_DEV |
| 491 | }; | 491 | }; |
| 492 | MODULE_ALIAS_FS("squashfs"); | ||
| 492 | 493 | ||
| 493 | static const struct super_operations squashfs_super_ops = { | 494 | static const struct super_operations squashfs_super_ops = { |
| 494 | .alloc_inode = squashfs_alloc_inode, | 495 | .alloc_inode = squashfs_alloc_inode, |
diff --git a/fs/sysv/super.c b/fs/sysv/super.c index a39938b1feea..d0c6a007ce83 100644 --- a/fs/sysv/super.c +++ b/fs/sysv/super.c | |||
| @@ -555,6 +555,7 @@ static struct file_system_type v7_fs_type = { | |||
| 555 | .fs_flags = FS_REQUIRES_DEV, | 555 | .fs_flags = FS_REQUIRES_DEV, |
| 556 | }; | 556 | }; |
| 557 | MODULE_ALIAS_FS("v7"); | 557 | MODULE_ALIAS_FS("v7"); |
| 558 | MODULE_ALIAS("v7"); | ||
| 558 | 559 | ||
| 559 | static int __init init_sysv_fs(void) | 560 | static int __init init_sysv_fs(void) |
| 560 | { | 561 | { |
diff --git a/fs/udf/super.c b/fs/udf/super.c index bc5b30a819e8..9ac4057a86c9 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c | |||
| @@ -118,6 +118,7 @@ static struct file_system_type udf_fstype = { | |||
| 118 | .kill_sb = kill_block_super, | 118 | .kill_sb = kill_block_super, |
| 119 | .fs_flags = FS_REQUIRES_DEV, | 119 | .fs_flags = FS_REQUIRES_DEV, |
| 120 | }; | 120 | }; |
| 121 | MODULE_ALIAS_FS("udf"); | ||
| 121 | 122 | ||
| 122 | static struct kmem_cache *udf_inode_cachep; | 123 | static struct kmem_cache *udf_inode_cachep; |
| 123 | 124 | ||
