diff options
Diffstat (limited to 'fs/ntfs')
-rw-r--r-- | fs/ntfs/dir.c | 5 | ||||
-rw-r--r-- | fs/ntfs/inode.c | 6 | ||||
-rw-r--r-- | fs/ntfs/mft.c | 9 | ||||
-rw-r--r-- | fs/ntfs/super.c | 28 | ||||
-rw-r--r-- | fs/ntfs/unistr.c | 4 |
5 files changed, 12 insertions, 40 deletions
diff --git a/fs/ntfs/dir.c b/fs/ntfs/dir.c index d1e2c6f9f05e..85c36b8ca452 100644 --- a/fs/ntfs/dir.c +++ b/fs/ntfs/dir.c | |||
@@ -1149,8 +1149,7 @@ static int ntfs_readdir(struct file *filp, void *dirent, filldir_t filldir) | |||
1149 | * Allocate a buffer to store the current name being processed | 1149 | * Allocate a buffer to store the current name being processed |
1150 | * converted to format determined by current NLS. | 1150 | * converted to format determined by current NLS. |
1151 | */ | 1151 | */ |
1152 | name = (u8*)kmalloc(NTFS_MAX_NAME_LEN * NLS_MAX_CHARSET_SIZE + 1, | 1152 | name = kmalloc(NTFS_MAX_NAME_LEN * NLS_MAX_CHARSET_SIZE + 1, GFP_NOFS); |
1153 | GFP_NOFS); | ||
1154 | if (unlikely(!name)) { | 1153 | if (unlikely(!name)) { |
1155 | err = -ENOMEM; | 1154 | err = -ENOMEM; |
1156 | goto err_out; | 1155 | goto err_out; |
@@ -1191,7 +1190,7 @@ static int ntfs_readdir(struct file *filp, void *dirent, filldir_t filldir) | |||
1191 | * map the mft record without deadlocking. | 1190 | * map the mft record without deadlocking. |
1192 | */ | 1191 | */ |
1193 | rc = le32_to_cpu(ctx->attr->data.resident.value_length); | 1192 | rc = le32_to_cpu(ctx->attr->data.resident.value_length); |
1194 | ir = (INDEX_ROOT*)kmalloc(rc, GFP_NOFS); | 1193 | ir = kmalloc(rc, GFP_NOFS); |
1195 | if (unlikely(!ir)) { | 1194 | if (unlikely(!ir)) { |
1196 | err = -ENOMEM; | 1195 | err = -ENOMEM; |
1197 | goto err_out; | 1196 | goto err_out; |
diff --git a/fs/ntfs/inode.c b/fs/ntfs/inode.c index d313f356e66a..933dbd89c2a4 100644 --- a/fs/ntfs/inode.c +++ b/fs/ntfs/inode.c | |||
@@ -137,7 +137,7 @@ static int ntfs_init_locked_inode(struct inode *vi, ntfs_attr *na) | |||
137 | 137 | ||
138 | BUG_ON(!na->name); | 138 | BUG_ON(!na->name); |
139 | i = na->name_len * sizeof(ntfschar); | 139 | i = na->name_len * sizeof(ntfschar); |
140 | ni->name = (ntfschar*)kmalloc(i + sizeof(ntfschar), GFP_ATOMIC); | 140 | ni->name = kmalloc(i + sizeof(ntfschar), GFP_ATOMIC); |
141 | if (!ni->name) | 141 | if (!ni->name) |
142 | return -ENOMEM; | 142 | return -ENOMEM; |
143 | memcpy(ni->name, na->name, i); | 143 | memcpy(ni->name, na->name, i); |
@@ -556,8 +556,6 @@ static int ntfs_read_locked_inode(struct inode *vi) | |||
556 | 556 | ||
557 | /* Setup the generic vfs inode parts now. */ | 557 | /* Setup the generic vfs inode parts now. */ |
558 | 558 | ||
559 | /* This is the optimal IO size (for stat), not the fs block size. */ | ||
560 | vi->i_blksize = PAGE_CACHE_SIZE; | ||
561 | /* | 559 | /* |
562 | * This is for checking whether an inode has changed w.r.t. a file so | 560 | * This is for checking whether an inode has changed w.r.t. a file so |
563 | * that the file can be updated if necessary (compare with f_version). | 561 | * that the file can be updated if necessary (compare with f_version). |
@@ -1234,7 +1232,6 @@ static int ntfs_read_locked_attr_inode(struct inode *base_vi, struct inode *vi) | |||
1234 | base_ni = NTFS_I(base_vi); | 1232 | base_ni = NTFS_I(base_vi); |
1235 | 1233 | ||
1236 | /* Just mirror the values from the base inode. */ | 1234 | /* Just mirror the values from the base inode. */ |
1237 | vi->i_blksize = base_vi->i_blksize; | ||
1238 | vi->i_version = base_vi->i_version; | 1235 | vi->i_version = base_vi->i_version; |
1239 | vi->i_uid = base_vi->i_uid; | 1236 | vi->i_uid = base_vi->i_uid; |
1240 | vi->i_gid = base_vi->i_gid; | 1237 | vi->i_gid = base_vi->i_gid; |
@@ -1504,7 +1501,6 @@ static int ntfs_read_locked_index_inode(struct inode *base_vi, struct inode *vi) | |||
1504 | ni = NTFS_I(vi); | 1501 | ni = NTFS_I(vi); |
1505 | base_ni = NTFS_I(base_vi); | 1502 | base_ni = NTFS_I(base_vi); |
1506 | /* Just mirror the values from the base inode. */ | 1503 | /* Just mirror the values from the base inode. */ |
1507 | vi->i_blksize = base_vi->i_blksize; | ||
1508 | vi->i_version = base_vi->i_version; | 1504 | vi->i_version = base_vi->i_version; |
1509 | vi->i_uid = base_vi->i_uid; | 1505 | vi->i_uid = base_vi->i_uid; |
1510 | vi->i_gid = base_vi->i_gid; | 1506 | vi->i_gid = base_vi->i_gid; |
diff --git a/fs/ntfs/mft.c b/fs/ntfs/mft.c index 2438c00ec0ce..584260fd6848 100644 --- a/fs/ntfs/mft.c +++ b/fs/ntfs/mft.c | |||
@@ -331,7 +331,7 @@ map_err_out: | |||
331 | ntfs_inode **tmp; | 331 | ntfs_inode **tmp; |
332 | int new_size = (base_ni->nr_extents + 4) * sizeof(ntfs_inode *); | 332 | int new_size = (base_ni->nr_extents + 4) * sizeof(ntfs_inode *); |
333 | 333 | ||
334 | tmp = (ntfs_inode **)kmalloc(new_size, GFP_NOFS); | 334 | tmp = kmalloc(new_size, GFP_NOFS); |
335 | if (unlikely(!tmp)) { | 335 | if (unlikely(!tmp)) { |
336 | ntfs_error(base_ni->vol->sb, "Failed to allocate " | 336 | ntfs_error(base_ni->vol->sb, "Failed to allocate " |
337 | "internal buffer."); | 337 | "internal buffer."); |
@@ -2638,11 +2638,6 @@ mft_rec_already_initialized: | |||
2638 | } | 2638 | } |
2639 | vi->i_ino = bit; | 2639 | vi->i_ino = bit; |
2640 | /* | 2640 | /* |
2641 | * This is the optimal IO size (for stat), not the fs block | ||
2642 | * size. | ||
2643 | */ | ||
2644 | vi->i_blksize = PAGE_CACHE_SIZE; | ||
2645 | /* | ||
2646 | * This is for checking whether an inode has changed w.r.t. a | 2641 | * This is for checking whether an inode has changed w.r.t. a |
2647 | * file so that the file can be updated if necessary (compare | 2642 | * file so that the file can be updated if necessary (compare |
2648 | * with f_version). | 2643 | * with f_version). |
@@ -2893,7 +2888,7 @@ rollback: | |||
2893 | if (!(base_ni->nr_extents & 3)) { | 2888 | if (!(base_ni->nr_extents & 3)) { |
2894 | int new_size = (base_ni->nr_extents + 4) * sizeof(ntfs_inode*); | 2889 | int new_size = (base_ni->nr_extents + 4) * sizeof(ntfs_inode*); |
2895 | 2890 | ||
2896 | extent_nis = (ntfs_inode**)kmalloc(new_size, GFP_NOFS); | 2891 | extent_nis = kmalloc(new_size, GFP_NOFS); |
2897 | if (unlikely(!extent_nis)) { | 2892 | if (unlikely(!extent_nis)) { |
2898 | ntfs_error(vol->sb, "Failed to allocate internal " | 2893 | ntfs_error(vol->sb, "Failed to allocate internal " |
2899 | "buffer during rollback.%s", es); | 2894 | "buffer during rollback.%s", es); |
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c index 74e0ee8fce72..6b2712f10dd2 100644 --- a/fs/ntfs/super.c +++ b/fs/ntfs/super.c | |||
@@ -3248,32 +3248,14 @@ ictx_err_out: | |||
3248 | 3248 | ||
3249 | static void __exit exit_ntfs_fs(void) | 3249 | static void __exit exit_ntfs_fs(void) |
3250 | { | 3250 | { |
3251 | int err = 0; | ||
3252 | |||
3253 | ntfs_debug("Unregistering NTFS driver."); | 3251 | ntfs_debug("Unregistering NTFS driver."); |
3254 | 3252 | ||
3255 | unregister_filesystem(&ntfs_fs_type); | 3253 | unregister_filesystem(&ntfs_fs_type); |
3256 | 3254 | kmem_cache_destroy(ntfs_big_inode_cache); | |
3257 | if (kmem_cache_destroy(ntfs_big_inode_cache) && (err = 1)) | 3255 | kmem_cache_destroy(ntfs_inode_cache); |
3258 | printk(KERN_CRIT "NTFS: Failed to destory %s.\n", | 3256 | kmem_cache_destroy(ntfs_name_cache); |
3259 | ntfs_big_inode_cache_name); | 3257 | kmem_cache_destroy(ntfs_attr_ctx_cache); |
3260 | if (kmem_cache_destroy(ntfs_inode_cache) && (err = 1)) | 3258 | kmem_cache_destroy(ntfs_index_ctx_cache); |
3261 | printk(KERN_CRIT "NTFS: Failed to destory %s.\n", | ||
3262 | ntfs_inode_cache_name); | ||
3263 | if (kmem_cache_destroy(ntfs_name_cache) && (err = 1)) | ||
3264 | printk(KERN_CRIT "NTFS: Failed to destory %s.\n", | ||
3265 | ntfs_name_cache_name); | ||
3266 | if (kmem_cache_destroy(ntfs_attr_ctx_cache) && (err = 1)) | ||
3267 | printk(KERN_CRIT "NTFS: Failed to destory %s.\n", | ||
3268 | ntfs_attr_ctx_cache_name); | ||
3269 | if (kmem_cache_destroy(ntfs_index_ctx_cache) && (err = 1)) | ||
3270 | printk(KERN_CRIT "NTFS: Failed to destory %s.\n", | ||
3271 | ntfs_index_ctx_cache_name); | ||
3272 | if (err) | ||
3273 | printk(KERN_CRIT "NTFS: This causes memory to leak! There is " | ||
3274 | "probably a BUG in the driver! Please report " | ||
3275 | "you saw this message to " | ||
3276 | "linux-ntfs-dev@lists.sourceforge.net\n"); | ||
3277 | /* Unregister the ntfs sysctls. */ | 3259 | /* Unregister the ntfs sysctls. */ |
3278 | ntfs_sysctl(0); | 3260 | ntfs_sysctl(0); |
3279 | } | 3261 | } |
diff --git a/fs/ntfs/unistr.c b/fs/ntfs/unistr.c index b123c0fa6bf6..a1b572196fe4 100644 --- a/fs/ntfs/unistr.c +++ b/fs/ntfs/unistr.c | |||
@@ -350,7 +350,7 @@ int ntfs_ucstonls(const ntfs_volume *vol, const ntfschar *ins, | |||
350 | } | 350 | } |
351 | if (!ns) { | 351 | if (!ns) { |
352 | ns_len = ins_len * NLS_MAX_CHARSET_SIZE; | 352 | ns_len = ins_len * NLS_MAX_CHARSET_SIZE; |
353 | ns = (unsigned char*)kmalloc(ns_len + 1, GFP_NOFS); | 353 | ns = kmalloc(ns_len + 1, GFP_NOFS); |
354 | if (!ns) | 354 | if (!ns) |
355 | goto mem_err_out; | 355 | goto mem_err_out; |
356 | } | 356 | } |
@@ -365,7 +365,7 @@ retry: wc = nls->uni2char(le16_to_cpu(ins[i]), ns + o, | |||
365 | else if (wc == -ENAMETOOLONG && ns != *outs) { | 365 | else if (wc == -ENAMETOOLONG && ns != *outs) { |
366 | unsigned char *tc; | 366 | unsigned char *tc; |
367 | /* Grow in multiples of 64 bytes. */ | 367 | /* Grow in multiples of 64 bytes. */ |
368 | tc = (unsigned char*)kmalloc((ns_len + 64) & | 368 | tc = kmalloc((ns_len + 64) & |
369 | ~63, GFP_NOFS); | 369 | ~63, GFP_NOFS); |
370 | if (tc) { | 370 | if (tc) { |
371 | memcpy(tc, ns, ns_len); | 371 | memcpy(tc, ns, ns_len); |