[4/5] btrfs: use GFP_KERNEL in init_ipath
diff mbox

Message ID 529ad6aaf2a0814b3b42da65f7e3afa9d0576e7c.1496252765.git.dsterba@suse.com
State New
Headers show

Commit Message

David Sterba May 31, 2017, 5:49 p.m. UTC
Now that init_ipath is called either from a safe context or with
memalloc_nofs protection, we can switch to GFP_KERNEL allocations in
init_path and init_data_container.

Signed-off-by: David Sterba <dsterba@suse.com>
---
 fs/btrfs/backref.c | 10 +++++-----
 fs/btrfs/ioctl.c   |  4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

Comments

Anand Jain June 1, 2017, 9:39 a.m. UTC | #1
On 06/01/17 01:49, David Sterba wrote:
> Now that init_ipath is called either from a safe context or with
> memalloc_nofs protection, we can switch to GFP_KERNEL allocations in
> init_path and init_data_container.

  Reviewed-by: Anand Jain <anand.jain@oracle.com>

Thanks, Anand


> Signed-off-by: David Sterba <dsterba@suse.com>
> ---
>  fs/btrfs/backref.c | 10 +++++-----
>  fs/btrfs/ioctl.c   |  4 ++--
>  2 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
> index 24865da63d8f..f723c11bb763 100644
> --- a/fs/btrfs/backref.c
> +++ b/fs/btrfs/backref.c
> @@ -16,7 +16,7 @@
>   * Boston, MA 021110-1307, USA.
>   */
>
> -#include <linux/vmalloc.h>
> +#include <linux/mm.h>
>  #include <linux/rbtree.h>
>  #include "ctree.h"
>  #include "disk-io.h"
> @@ -2305,7 +2305,7 @@ struct btrfs_data_container *init_data_container(u32 total_bytes)
>  	size_t alloc_bytes;
>
>  	alloc_bytes = max_t(size_t, total_bytes, sizeof(*data));
> -	data = vmalloc(alloc_bytes);
> +	data = kvmalloc(alloc_bytes, GFP_KERNEL);
>  	if (!data)
>  		return ERR_PTR(-ENOMEM);
>
> @@ -2339,9 +2339,9 @@ struct inode_fs_paths *init_ipath(s32 total_bytes, struct btrfs_root *fs_root,
>  	if (IS_ERR(fspath))
>  		return (void *)fspath;
>
> -	ifp = kmalloc(sizeof(*ifp), GFP_NOFS);
> +	ifp = kmalloc(sizeof(*ifp), GFP_KERNEL);
>  	if (!ifp) {
> -		vfree(fspath);
> +		kvfree(fspath);
>  		return ERR_PTR(-ENOMEM);
>  	}
>
> @@ -2356,6 +2356,6 @@ void free_ipath(struct inode_fs_paths *ipath)
>  {
>  	if (!ipath)
>  		return;
> -	vfree(ipath->fspath);
> +	kvfree(ipath->fspath);
>  	kfree(ipath);
>  }
> diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
> index c9cdea8061bc..e4116f9248c2 100644
> --- a/fs/btrfs/ioctl.c
> +++ b/fs/btrfs/ioctl.c
> @@ -37,7 +37,7 @@
>  #include <linux/bit_spinlock.h>
>  #include <linux/security.h>
>  #include <linux/xattr.h>
> -#include <linux/vmalloc.h>
> +#include <linux/mm.h>
>  #include <linux/slab.h>
>  #include <linux/blkdev.h>
>  #include <linux/uuid.h>
> @@ -4588,7 +4588,7 @@ static long btrfs_ioctl_logical_to_ino(struct btrfs_fs_info *fs_info,
>
>  out:
>  	btrfs_free_path(path);
> -	vfree(inodes);
> +	kvfree(inodes);
>  	kfree(loi);
>
>  	return ret;
>
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index 24865da63d8f..f723c11bb763 100644
--- a/fs/btrfs/backref.c
+++ b/fs/btrfs/backref.c
@@ -16,7 +16,7 @@ 
  * Boston, MA 021110-1307, USA.
  */
 
-#include <linux/vmalloc.h>
+#include <linux/mm.h>
 #include <linux/rbtree.h>
 #include "ctree.h"
 #include "disk-io.h"
@@ -2305,7 +2305,7 @@  struct btrfs_data_container *init_data_container(u32 total_bytes)
 	size_t alloc_bytes;
 
 	alloc_bytes = max_t(size_t, total_bytes, sizeof(*data));
-	data = vmalloc(alloc_bytes);
+	data = kvmalloc(alloc_bytes, GFP_KERNEL);
 	if (!data)
 		return ERR_PTR(-ENOMEM);
 
@@ -2339,9 +2339,9 @@  struct inode_fs_paths *init_ipath(s32 total_bytes, struct btrfs_root *fs_root,
 	if (IS_ERR(fspath))
 		return (void *)fspath;
 
-	ifp = kmalloc(sizeof(*ifp), GFP_NOFS);
+	ifp = kmalloc(sizeof(*ifp), GFP_KERNEL);
 	if (!ifp) {
-		vfree(fspath);
+		kvfree(fspath);
 		return ERR_PTR(-ENOMEM);
 	}
 
@@ -2356,6 +2356,6 @@  void free_ipath(struct inode_fs_paths *ipath)
 {
 	if (!ipath)
 		return;
-	vfree(ipath->fspath);
+	kvfree(ipath->fspath);
 	kfree(ipath);
 }
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index c9cdea8061bc..e4116f9248c2 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -37,7 +37,7 @@ 
 #include <linux/bit_spinlock.h>
 #include <linux/security.h>
 #include <linux/xattr.h>
-#include <linux/vmalloc.h>
+#include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/blkdev.h>
 #include <linux/uuid.h>
@@ -4588,7 +4588,7 @@  static long btrfs_ioctl_logical_to_ino(struct btrfs_fs_info *fs_info,
 
 out:
 	btrfs_free_path(path);
-	vfree(inodes);
+	kvfree(inodes);
 	kfree(loi);
 
 	return ret;