Blame SOURCES/0019-fs-ntfs3-Do-not-use-driver-own-alloc-wrappers.patch

Kmods SIG 8b815c
From 195c52bdd5d5ecfdabf5a7c6159efe299e534f84 Mon Sep 17 00:00:00 2001
Kmods SIG 8b815c
From: Kari Argillander <kari.argillander@gmail.com>
Kmods SIG 8b815c
Date: Tue, 24 Aug 2021 21:37:07 +0300
Kmods SIG 8b815c
Subject: [Backport 195c52bdd5d5] src: Do not use driver own alloc
Kmods SIG 8b815c
 wrappers
Kmods SIG 8b815c
Kmods SIG 8b815c
Problem with these wrapper is that we cannot take off example GFP_NOFS
Kmods SIG 8b815c
flag. It is not recomended use those in all places. Also if we change
Kmods SIG 8b815c
one driver specific wrapper to kernel wrapper then it would look really
Kmods SIG 8b815c
weird. People should be most familiar with kernel wrappers so let's just
Kmods SIG 8b815c
use those ones.
Kmods SIG 8b815c
Kmods SIG 8b815c
Driver specific alloc wrapper also confuse some static analyzing tools,
Kmods SIG 8b815c
good example is example kernels checkpatch tool. After we converter
Kmods SIG 8b815c
these to kernel specific then warnings is showed.
Kmods SIG 8b815c
Kmods SIG 8b815c
Following Coccinelle script was used to automate changing.
Kmods SIG 8b815c
Kmods SIG 8b815c
virtual patch
Kmods SIG 8b815c
Kmods SIG 8b815c
@alloc depends on patch@
Kmods SIG 8b815c
expression x;
Kmods SIG 8b815c
expression y;
Kmods SIG 8b815c
@@
Kmods SIG 8b815c
(
Kmods SIG 8b815c
-	ntfs_malloc(x)
Kmods SIG 8b815c
+	kmalloc(x, GFP_NOFS)
Kmods SIG 8b815c
|
Kmods SIG 8b815c
-	ntfs_zalloc(x)
Kmods SIG 8b815c
+	kzalloc(x, GFP_NOFS)
Kmods SIG 8b815c
|
Kmods SIG 8b815c
-	ntfs_vmalloc(x)
Kmods SIG 8b815c
+	kvmalloc(x, GFP_NOFS)
Kmods SIG 8b815c
|
Kmods SIG 8b815c
-	ntfs_free(x)
Kmods SIG 8b815c
+	kfree(x)
Kmods SIG 8b815c
|
Kmods SIG 8b815c
-	ntfs_vfree(x)
Kmods SIG 8b815c
+	kvfree(x)
Kmods SIG 8b815c
|
Kmods SIG 8b815c
-	ntfs_memdup(x, y)
Kmods SIG 8b815c
+	kmemdup(x, y, GFP_NOFS)
Kmods SIG 8b815c
)
Kmods SIG 8b815c
Kmods SIG 8b815c
Reviewed-by: Christoph Hellwig <hch@lst.de>
Kmods SIG 8b815c
Signed-off-by: Kari Argillander <kari.argillander@gmail.com>
Kmods SIG 8b815c
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Kmods SIG 8b815c
---
Kmods SIG 8b815c
 src/attrib.c   |   6 +-
Kmods SIG 8b815c
 src/attrlist.c |  10 +--
Kmods SIG 8b815c
 src/bitmap.c   |   8 +--
Kmods SIG 8b815c
 src/debug.h    |   7 --
Kmods SIG 8b815c
 src/file.c     |   4 +-
Kmods SIG 8b815c
 src/frecord.c  |  27 +++----
Kmods SIG 8b815c
 src/fslog.c    | 172 ++++++++++++++++++++++----------------------
Kmods SIG 8b815c
 src/fsntfs.c   |   8 +--
Kmods SIG 8b815c
 src/index.c    |  54 +++++++-------
Kmods SIG 8b815c
 src/inode.c    |  10 +--
Kmods SIG 8b815c
 src/lznt.c     |   4 +-
Kmods SIG 8b815c
 src/ntfs_fs.h  |  18 ++---
Kmods SIG 8b815c
 src/record.c   |   8 +--
Kmods SIG 8b815c
 src/run.c      |   8 +--
Kmods SIG 8b815c
 src/super.c    |  20 +++---
Kmods SIG 8b815c
 src/xattr.c    |  18 ++---
Kmods SIG 8b815c
 16 files changed, 188 insertions(+), 194 deletions(-)
Kmods SIG 8b815c
Kmods SIG 8b815c
diff --git a/src/attrib.c b/src/attrib.c
Kmods SIG 8b815c
index c15467ec12ed88ad05390fb57a47f396d4391f3e..4eae9886e27d0f481671c4b40c22a3742d794e4f 100644
Kmods SIG 8b815c
--- a/src/attrib.c
Kmods SIG 8b815c
+++ b/src/attrib.c
Kmods SIG 8b815c
@@ -276,7 +276,7 @@ int attr_make_nonresident(struct ntfs_inode *ni, struct ATTRIB *attr,
Kmods SIG 8b815c
 	run_init(run);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	/* make a copy of original attribute */
Kmods SIG 8b815c
-	attr_s = ntfs_memdup(attr, asize);
Kmods SIG 8b815c
+	attr_s = kmemdup(attr, asize, GFP_NOFS);
Kmods SIG 8b815c
 	if (!attr_s) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -333,7 +333,7 @@ int attr_make_nonresident(struct ntfs_inode *ni, struct ATTRIB *attr,
Kmods SIG 8b815c
 	if (err)
Kmods SIG 8b815c
 		goto out3;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(attr_s);
Kmods SIG 8b815c
+	kfree(attr_s);
Kmods SIG 8b815c
 	attr->nres.data_size = cpu_to_le64(rsize);
Kmods SIG 8b815c
 	attr->nres.valid_size = attr->nres.data_size;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -356,7 +356,7 @@ int attr_make_nonresident(struct ntfs_inode *ni, struct ATTRIB *attr,
Kmods SIG 8b815c
 	run_deallocate(sbi, run, false);
Kmods SIG 8b815c
 	run_close(run);
Kmods SIG 8b815c
 out1:
Kmods SIG 8b815c
-	ntfs_free(attr_s);
Kmods SIG 8b815c
+	kfree(attr_s);
Kmods SIG 8b815c
 	/*reinsert le*/
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
diff --git a/src/attrlist.c b/src/attrlist.c
Kmods SIG 8b815c
index ea561361b576d5a8a1ec30c0017a5ac76f1a61df..348bfb54db09f364f64182f51468f6cceb12e37d 100644
Kmods SIG 8b815c
--- a/src/attrlist.c
Kmods SIG 8b815c
+++ b/src/attrlist.c
Kmods SIG 8b815c
@@ -28,7 +28,7 @@ static inline bool al_is_valid_le(const struct ntfs_inode *ni,
Kmods SIG 8b815c
 void al_destroy(struct ntfs_inode *ni)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	run_close(&ni->attr_list.run);
Kmods SIG 8b815c
-	ntfs_free(ni->attr_list.le);
Kmods SIG 8b815c
+	kfree(ni->attr_list.le);
Kmods SIG 8b815c
 	ni->attr_list.le = NULL;
Kmods SIG 8b815c
 	ni->attr_list.size = 0;
Kmods SIG 8b815c
 	ni->attr_list.dirty = false;
Kmods SIG 8b815c
@@ -51,7 +51,7 @@ int ntfs_load_attr_list(struct ntfs_inode *ni, struct ATTRIB *attr)
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (!attr->non_res) {
Kmods SIG 8b815c
 		lsize = le32_to_cpu(attr->res.data_size);
Kmods SIG 8b815c
-		le = ntfs_malloc(al_aligned(lsize));
Kmods SIG 8b815c
+		le = kmalloc(al_aligned(lsize), GFP_NOFS);
Kmods SIG 8b815c
 		if (!le) {
Kmods SIG 8b815c
 			err = -ENOMEM;
Kmods SIG 8b815c
 			goto out;
Kmods SIG 8b815c
@@ -74,7 +74,7 @@ int ntfs_load_attr_list(struct ntfs_inode *ni, struct ATTRIB *attr)
Kmods SIG 8b815c
 		if (err < 0)
Kmods SIG 8b815c
 			goto out;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-		le = ntfs_malloc(al_aligned(lsize));
Kmods SIG 8b815c
+		le = kmalloc(al_aligned(lsize), GFP_NOFS);
Kmods SIG 8b815c
 		if (!le) {
Kmods SIG 8b815c
 			err = -ENOMEM;
Kmods SIG 8b815c
 			goto out;
Kmods SIG 8b815c
@@ -289,7 +289,7 @@ int al_add_le(struct ntfs_inode *ni, enum ATTR_TYPE type, const __le16 *name,
Kmods SIG 8b815c
 	off = PtrOffset(al->le, le);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (new_size > asize) {
Kmods SIG 8b815c
-		void *ptr = ntfs_malloc(new_asize);
Kmods SIG 8b815c
+		void *ptr = kmalloc(new_asize, GFP_NOFS);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		if (!ptr)
Kmods SIG 8b815c
 			return -ENOMEM;
Kmods SIG 8b815c
@@ -297,7 +297,7 @@ int al_add_le(struct ntfs_inode *ni, enum ATTR_TYPE type, const __le16 *name,
Kmods SIG 8b815c
 		memcpy(ptr, al->le, off);
Kmods SIG 8b815c
 		memcpy(Add2Ptr(ptr, off + sz), le, al->size - off);
Kmods SIG 8b815c
 		le = Add2Ptr(ptr, off);
Kmods SIG 8b815c
-		ntfs_free(al->le);
Kmods SIG 8b815c
+		kfree(al->le);
Kmods SIG 8b815c
 		al->le = ptr;
Kmods SIG 8b815c
 	} else {
Kmods SIG 8b815c
 		memmove(Add2Ptr(le, sz), le, al->size - off);
Kmods SIG 8b815c
diff --git a/src/bitmap.c b/src/bitmap.c
Kmods SIG 8b815c
index 32aab0031221db3ee67b09c239b960158370d238..d502bba323d00e1ccafa7a0a0eeea46e0e36d796 100644
Kmods SIG 8b815c
--- a/src/bitmap.c
Kmods SIG 8b815c
+++ b/src/bitmap.c
Kmods SIG 8b815c
@@ -133,7 +133,7 @@ void wnd_close(struct wnd_bitmap *wnd)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	struct rb_node *node, *next;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(wnd->free_bits);
Kmods SIG 8b815c
+	kfree(wnd->free_bits);
Kmods SIG 8b815c
 	run_close(&wnd->run);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	node = rb_first(&wnd->start_tree);
Kmods SIG 8b815c
@@ -683,7 +683,7 @@ int wnd_init(struct wnd_bitmap *wnd, struct super_block *sb, size_t nbits)
Kmods SIG 8b815c
 	if (!wnd->bits_last)
Kmods SIG 8b815c
 		wnd->bits_last = wbits;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	wnd->free_bits = ntfs_zalloc(wnd->nwnd * sizeof(u16));
Kmods SIG 8b815c
+	wnd->free_bits = kzalloc(wnd->nwnd * sizeof(u16), GFP_NOFS);
Kmods SIG 8b815c
 	if (!wnd->free_bits)
Kmods SIG 8b815c
 		return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1354,7 +1354,7 @@ int wnd_extend(struct wnd_bitmap *wnd, size_t new_bits)
Kmods SIG 8b815c
 		new_last = wbits;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (new_wnd != wnd->nwnd) {
Kmods SIG 8b815c
-		new_free = ntfs_malloc(new_wnd * sizeof(u16));
Kmods SIG 8b815c
+		new_free = kmalloc(new_wnd * sizeof(u16), GFP_NOFS);
Kmods SIG 8b815c
 		if (!new_free)
Kmods SIG 8b815c
 			return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1363,7 +1363,7 @@ int wnd_extend(struct wnd_bitmap *wnd, size_t new_bits)
Kmods SIG 8b815c
 			       wnd->nwnd * sizeof(short));
Kmods SIG 8b815c
 		memset(new_free + wnd->nwnd, 0,
Kmods SIG 8b815c
 		       (new_wnd - wnd->nwnd) * sizeof(short));
Kmods SIG 8b815c
-		ntfs_free(wnd->free_bits);
Kmods SIG 8b815c
+		kfree(wnd->free_bits);
Kmods SIG 8b815c
 		wnd->free_bits = new_free;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
diff --git a/src/debug.h b/src/debug.h
Kmods SIG 8b815c
index aff4cead9f58ff3222d68d54d853808f0e17a6dc..c8403e876b2dc522520921c58fa230a4df4e04d1 100644
Kmods SIG 8b815c
--- a/src/debug.h
Kmods SIG 8b815c
+++ b/src/debug.h
Kmods SIG 8b815c
@@ -47,12 +47,5 @@ void ntfs_inode_printk(struct inode *inode, const char *fmt, ...)
Kmods SIG 8b815c
 #define ntfs_inode_warn(inode, fmt, ...)                                       \
Kmods SIG 8b815c
 	ntfs_inode_printk(inode, KERN_WARNING fmt, ##__VA_ARGS__)
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-#define ntfs_malloc(s)		kmalloc(s, GFP_NOFS)
Kmods SIG 8b815c
-#define ntfs_zalloc(s)		kzalloc(s, GFP_NOFS)
Kmods SIG 8b815c
-#define ntfs_vmalloc(s)		kvmalloc(s, GFP_KERNEL)
Kmods SIG 8b815c
-#define ntfs_free(p)		kfree(p)
Kmods SIG 8b815c
-#define ntfs_vfree(p)		kvfree(p)
Kmods SIG 8b815c
-#define ntfs_memdup(src, len)	kmemdup(src, len, GFP_NOFS)
Kmods SIG 8b815c
-
Kmods SIG 8b815c
 #endif /* _LINUX_NTFS3_DEBUG_H */
Kmods SIG 8b815c
 // clang-format on
Kmods SIG 8b815c
diff --git a/src/file.c b/src/file.c
Kmods SIG 8b815c
index 59344985c2e8017d67cfba642d1bacaa676b3f24..8d27c520bec56a1daca965fba7ba826049b18709 100644
Kmods SIG 8b815c
--- a/src/file.c
Kmods SIG 8b815c
+++ b/src/file.c
Kmods SIG 8b815c
@@ -900,7 +900,7 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from)
Kmods SIG 8b815c
 		return -EOPNOTSUPP;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	pages = ntfs_malloc(pages_per_frame * sizeof(struct page *));
Kmods SIG 8b815c
+	pages = kmalloc(pages_per_frame * sizeof(struct page *), GFP_NOFS);
Kmods SIG 8b815c
 	if (!pages)
Kmods SIG 8b815c
 		return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1076,7 +1076,7 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from)
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(pages);
Kmods SIG 8b815c
+	kfree(pages);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	current->backing_dev_info = NULL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
diff --git a/src/frecord.c b/src/frecord.c
Kmods SIG 8b815c
index 8e2242147ebfcdc4bea3cf19d79276725f09be9b..2f7d165435307dc37dfbc6ba7959f04c1b218257 100644
Kmods SIG 8b815c
--- a/src/frecord.c
Kmods SIG 8b815c
+++ b/src/frecord.c
Kmods SIG 8b815c
@@ -388,7 +388,7 @@ bool ni_add_subrecord(struct ntfs_inode *ni, CLST rno, struct mft_inode **mi)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	struct mft_inode *m;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	m = ntfs_zalloc(sizeof(struct mft_inode));
Kmods SIG 8b815c
+	m = kzalloc(sizeof(struct mft_inode), GFP_NOFS);
Kmods SIG 8b815c
 	if (!m)
Kmods SIG 8b815c
 		return false;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -752,7 +752,7 @@ static int ni_try_remove_attr_list(struct ntfs_inode *ni)
Kmods SIG 8b815c
 	run_deallocate(sbi, &ni->attr_list.run, true);
Kmods SIG 8b815c
 	run_close(&ni->attr_list.run);
Kmods SIG 8b815c
 	ni->attr_list.size = 0;
Kmods SIG 8b815c
-	ntfs_free(ni->attr_list.le);
Kmods SIG 8b815c
+	kfree(ni->attr_list.le);
Kmods SIG 8b815c
 	ni->attr_list.le = NULL;
Kmods SIG 8b815c
 	ni->attr_list.dirty = false;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -787,7 +787,7 @@ int ni_create_attr_list(struct ntfs_inode *ni)
Kmods SIG 8b815c
 	 * Skip estimating exact memory requirement
Kmods SIG 8b815c
 	 * Looks like one record_size is always enough
Kmods SIG 8b815c
 	 */
Kmods SIG 8b815c
-	le = ntfs_malloc(al_aligned(rs));
Kmods SIG 8b815c
+	le = kmalloc(al_aligned(rs), GFP_NOFS);
Kmods SIG 8b815c
 	if (!le) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -893,7 +893,7 @@ int ni_create_attr_list(struct ntfs_inode *ni)
Kmods SIG 8b815c
 	goto out;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out1:
Kmods SIG 8b815c
-	ntfs_free(ni->attr_list.le);
Kmods SIG 8b815c
+	kfree(ni->attr_list.le);
Kmods SIG 8b815c
 	ni->attr_list.le = NULL;
Kmods SIG 8b815c
 	ni->attr_list.size = 0;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -2054,7 +2054,7 @@ int ni_readpage_cmpr(struct ntfs_inode *ni, struct page *page)
Kmods SIG 8b815c
 	idx = (vbo - frame_vbo) >> PAGE_SHIFT;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	pages_per_frame = frame_size >> PAGE_SHIFT;
Kmods SIG 8b815c
-	pages = ntfs_zalloc(pages_per_frame * sizeof(struct page *));
Kmods SIG 8b815c
+	pages = kzalloc(pages_per_frame * sizeof(struct page *), GFP_NOFS);
Kmods SIG 8b815c
 	if (!pages) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -2092,7 +2092,7 @@ int ni_readpage_cmpr(struct ntfs_inode *ni, struct page *page)
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
 	/* At this point, err contains 0 or -EIO depending on the "critical" page */
Kmods SIG 8b815c
-	ntfs_free(pages);
Kmods SIG 8b815c
+	kfree(pages);
Kmods SIG 8b815c
 	unlock_page(page);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
@@ -2137,7 +2137,7 @@ int ni_decompress_file(struct ntfs_inode *ni)
Kmods SIG 8b815c
 	frame_bits = ni_ext_compress_bits(ni);
Kmods SIG 8b815c
 	frame_size = 1u << frame_bits;
Kmods SIG 8b815c
 	pages_per_frame = frame_size >> PAGE_SHIFT;
Kmods SIG 8b815c
-	pages = ntfs_zalloc(pages_per_frame * sizeof(struct page *));
Kmods SIG 8b815c
+	pages = kzalloc(pages_per_frame * sizeof(struct page *), GFP_NOFS);
Kmods SIG 8b815c
 	if (!pages) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -2298,7 +2298,7 @@ int ni_decompress_file(struct ntfs_inode *ni)
Kmods SIG 8b815c
 	mapping->a_ops = &ntfs_aops;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(pages);
Kmods SIG 8b815c
+	kfree(pages);
Kmods SIG 8b815c
 	if (err) {
Kmods SIG 8b815c
 		make_bad_inode(inode);
Kmods SIG 8b815c
 		ntfs_set_state(sbi, NTFS_DIRTY_ERROR);
Kmods SIG 8b815c
@@ -2564,7 +2564,7 @@ int ni_read_frame(struct ntfs_inode *ni, u64 frame_vbo, struct page **pages,
Kmods SIG 8b815c
 		goto out1;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	pages_disk = ntfs_zalloc(npages_disk * sizeof(struct page *));
Kmods SIG 8b815c
+	pages_disk = kzalloc(npages_disk * sizeof(struct page *), GFP_NOFS);
Kmods SIG 8b815c
 	if (!pages_disk) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out2;
Kmods SIG 8b815c
@@ -2633,7 +2633,7 @@ int ni_read_frame(struct ntfs_inode *ni, u64 frame_vbo, struct page **pages,
Kmods SIG 8b815c
 			put_page(pg);
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
-	ntfs_free(pages_disk);
Kmods SIG 8b815c
+	kfree(pages_disk);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out2:
Kmods SIG 8b815c
 #ifdef CONFIG_NTFS3_LZX_XPRESS
Kmods SIG 8b815c
@@ -2709,7 +2709,8 @@ int ni_write_frame(struct ntfs_inode *ni, struct page **pages,
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	pages_disk = ntfs_zalloc(pages_per_frame * sizeof(struct page *));
Kmods SIG 8b815c
+	pages_disk = kzalloc(pages_per_frame * sizeof(struct page *),
Kmods SIG 8b815c
+			     GFP_NOFS);
Kmods SIG 8b815c
 	if (!pages_disk) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -2769,7 +2770,7 @@ int ni_write_frame(struct ntfs_inode *ni, struct page **pages,
Kmods SIG 8b815c
 	compr_size = compress_lznt(frame_mem, frame_size, frame_ondisk,
Kmods SIG 8b815c
 				   frame_size, sbi->compress.lznt);
Kmods SIG 8b815c
 	mutex_unlock(&sbi->compress.mtx_lznt);
Kmods SIG 8b815c
-	ntfs_free(lznt);
Kmods SIG 8b815c
+	kfree(lznt);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (compr_size + sbi->cluster_size > frame_size) {
Kmods SIG 8b815c
 		/* frame is not compressed */
Kmods SIG 8b815c
@@ -2818,7 +2819,7 @@ int ni_write_frame(struct ntfs_inode *ni, struct page **pages,
Kmods SIG 8b815c
 			put_page(pg);
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
-	ntfs_free(pages_disk);
Kmods SIG 8b815c
+	kfree(pages_disk);
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
diff --git a/src/fslog.c b/src/fslog.c
Kmods SIG 8b815c
index 5a118c351441cc2deca390c49cfd87d75f3e587b..2c213b55979ed06c03f4e74998fd03f9a9a8827b 100644
Kmods SIG 8b815c
--- a/src/fslog.c
Kmods SIG 8b815c
+++ b/src/fslog.c
Kmods SIG 8b815c
@@ -406,9 +406,9 @@ struct lcb {
Kmods SIG 8b815c
 static void lcb_put(struct lcb *lcb)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	if (lcb->alloc)
Kmods SIG 8b815c
-		ntfs_free(lcb->log_rec);
Kmods SIG 8b815c
-	ntfs_free(lcb->lrh);
Kmods SIG 8b815c
-	ntfs_free(lcb);
Kmods SIG 8b815c
+		kfree(lcb->log_rec);
Kmods SIG 8b815c
+	kfree(lcb->lrh);
Kmods SIG 8b815c
+	kfree(lcb);
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 /*
Kmods SIG 8b815c
@@ -807,7 +807,7 @@ static inline struct RESTART_TABLE *init_rsttbl(u16 esize, u16 used)
Kmods SIG 8b815c
 	u32 off;
Kmods SIG 8b815c
 	u32 bytes = esize * used + sizeof(struct RESTART_TABLE);
Kmods SIG 8b815c
 	u32 lf = sizeof(struct RESTART_TABLE) + (used - 1) * esize;
Kmods SIG 8b815c
-	struct RESTART_TABLE *t = ntfs_zalloc(bytes);
Kmods SIG 8b815c
+	struct RESTART_TABLE *t = kzalloc(bytes, GFP_NOFS);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	t->size = cpu_to_le16(esize);
Kmods SIG 8b815c
 	t->used = cpu_to_le16(used);
Kmods SIG 8b815c
@@ -849,7 +849,7 @@ static inline struct RESTART_TABLE *extend_rsttbl(struct RESTART_TABLE *tbl,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	rt->total = tbl->total;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(tbl);
Kmods SIG 8b815c
+	kfree(tbl);
Kmods SIG 8b815c
 	return rt;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1134,7 +1134,7 @@ static int read_log_page(struct ntfs_log *log, u32 vbo,
Kmods SIG 8b815c
 		return -EINVAL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (!*buffer) {
Kmods SIG 8b815c
-		to_free = ntfs_malloc(bytes);
Kmods SIG 8b815c
+		to_free = kmalloc(bytes, GFP_NOFS);
Kmods SIG 8b815c
 		if (!to_free)
Kmods SIG 8b815c
 			return -ENOMEM;
Kmods SIG 8b815c
 		*buffer = to_free;
Kmods SIG 8b815c
@@ -1164,7 +1164,7 @@ static int read_log_page(struct ntfs_log *log, u32 vbo,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
 	if (err && to_free) {
Kmods SIG 8b815c
-		ntfs_free(to_free);
Kmods SIG 8b815c
+		kfree(to_free);
Kmods SIG 8b815c
 		*buffer = NULL;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1181,7 +1181,7 @@ static int log_read_rst(struct ntfs_log *log, u32 l_size, bool first,
Kmods SIG 8b815c
 			struct restart_info *info)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	u32 skip, vbo;
Kmods SIG 8b815c
-	struct RESTART_HDR *r_page = ntfs_malloc(DefaultLogPageSize);
Kmods SIG 8b815c
+	struct RESTART_HDR *r_page = kmalloc(DefaultLogPageSize, GFP_NOFS);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (!r_page)
Kmods SIG 8b815c
 		return -ENOMEM;
Kmods SIG 8b815c
@@ -1257,8 +1257,8 @@ static int log_read_rst(struct ntfs_log *log, u32 l_size, bool first,
Kmods SIG 8b815c
 		/* Read the entire restart area */
Kmods SIG 8b815c
 		sys_page_size = le32_to_cpu(r_page->sys_page_size);
Kmods SIG 8b815c
 		if (DefaultLogPageSize != sys_page_size) {
Kmods SIG 8b815c
-			ntfs_free(r_page);
Kmods SIG 8b815c
-			r_page = ntfs_zalloc(sys_page_size);
Kmods SIG 8b815c
+			kfree(r_page);
Kmods SIG 8b815c
+			r_page = kzalloc(sys_page_size, GFP_NOFS);
Kmods SIG 8b815c
 			if (!r_page)
Kmods SIG 8b815c
 				return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1266,7 +1266,7 @@ static int log_read_rst(struct ntfs_log *log, u32 l_size, bool first,
Kmods SIG 8b815c
 					  (struct RECORD_PAGE_HDR **)&r_page,
Kmods SIG 8b815c
 					  &usa_error)) {
Kmods SIG 8b815c
 				/* ignore any errors */
Kmods SIG 8b815c
-				ntfs_free(r_page);
Kmods SIG 8b815c
+				kfree(r_page);
Kmods SIG 8b815c
 				r_page = NULL;
Kmods SIG 8b815c
 				continue;
Kmods SIG 8b815c
 			}
Kmods SIG 8b815c
@@ -1296,7 +1296,7 @@ static int log_read_rst(struct ntfs_log *log, u32 l_size, bool first,
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(r_page);
Kmods SIG 8b815c
+	kfree(r_page);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return 0;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
@@ -1397,7 +1397,7 @@ static void log_create(struct ntfs_log *log, u32 l_size, const u64 last_lsn,
Kmods SIG 8b815c
 static struct RESTART_AREA *log_create_ra(struct ntfs_log *log)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	struct CLIENT_REC *cr;
Kmods SIG 8b815c
-	struct RESTART_AREA *ra = ntfs_zalloc(log->restart_size);
Kmods SIG 8b815c
+	struct RESTART_AREA *ra = kzalloc(log->restart_size, GFP_NOFS);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (!ra)
Kmods SIG 8b815c
 		return NULL;
Kmods SIG 8b815c
@@ -1509,7 +1509,7 @@ static int next_log_lsn(struct ntfs_log *log, const struct LFS_RECORD_HDR *rh,
Kmods SIG 8b815c
 	if (!is_lsn_in_file(log, *lsn))
Kmods SIG 8b815c
 		*lsn = 0;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(page);
Kmods SIG 8b815c
+	kfree(page);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return 0;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
@@ -1634,7 +1634,7 @@ static int last_log_lsn(struct ntfs_log *log)
Kmods SIG 8b815c
 		second_off = 0x12 * log->page_size;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		// 0x10 == 0x12 - 0x2
Kmods SIG 8b815c
-		page_bufs = ntfs_malloc(log->page_size * 0x10);
Kmods SIG 8b815c
+		page_bufs = kmalloc(log->page_size * 0x10, GFP_NOFS);
Kmods SIG 8b815c
 		if (!page_bufs)
Kmods SIG 8b815c
 			return -ENOMEM;
Kmods SIG 8b815c
 	} else {
Kmods SIG 8b815c
@@ -1646,7 +1646,7 @@ static int last_log_lsn(struct ntfs_log *log)
Kmods SIG 8b815c
 	/* Read second tail page (at pos 3/0x12000) */
Kmods SIG 8b815c
 	if (read_log_page(log, second_off, &second_tail, &usa_error) ||
Kmods SIG 8b815c
 	    usa_error || second_tail->rhdr.sign != NTFS_RCRD_SIGNATURE) {
Kmods SIG 8b815c
-		ntfs_free(second_tail);
Kmods SIG 8b815c
+		kfree(second_tail);
Kmods SIG 8b815c
 		second_tail = NULL;
Kmods SIG 8b815c
 		second_file_off = 0;
Kmods SIG 8b815c
 		lsn2 = 0;
Kmods SIG 8b815c
@@ -1658,7 +1658,7 @@ static int last_log_lsn(struct ntfs_log *log)
Kmods SIG 8b815c
 	/* Read first tail page (at pos 2/0x2000 ) */
Kmods SIG 8b815c
 	if (read_log_page(log, final_off, &first_tail, &usa_error) ||
Kmods SIG 8b815c
 	    usa_error || first_tail->rhdr.sign != NTFS_RCRD_SIGNATURE) {
Kmods SIG 8b815c
-		ntfs_free(first_tail);
Kmods SIG 8b815c
+		kfree(first_tail);
Kmods SIG 8b815c
 		first_tail = NULL;
Kmods SIG 8b815c
 		first_file_off = 0;
Kmods SIG 8b815c
 		lsn1 = 0;
Kmods SIG 8b815c
@@ -1759,17 +1759,17 @@ static int last_log_lsn(struct ntfs_log *log)
Kmods SIG 8b815c
 			page_pos = page_cnt = 1;
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
 	} else {
Kmods SIG 8b815c
-		ntfs_free(first_tail);
Kmods SIG 8b815c
-		ntfs_free(second_tail);
Kmods SIG 8b815c
+		kfree(first_tail);
Kmods SIG 8b815c
+		kfree(second_tail);
Kmods SIG 8b815c
 		goto tail_read;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(first_tail_prev);
Kmods SIG 8b815c
+	kfree(first_tail_prev);
Kmods SIG 8b815c
 	first_tail_prev = first_tail;
Kmods SIG 8b815c
 	final_off_prev = first_file_off;
Kmods SIG 8b815c
 	first_tail = NULL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(second_tail_prev);
Kmods SIG 8b815c
+	kfree(second_tail_prev);
Kmods SIG 8b815c
 	second_tail_prev = second_tail;
Kmods SIG 8b815c
 	second_off_prev = second_file_off;
Kmods SIG 8b815c
 	second_tail = NULL;
Kmods SIG 8b815c
@@ -2030,7 +2030,7 @@ static int last_log_lsn(struct ntfs_log *log)
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	curpage_off = nextpage_off;
Kmods SIG 8b815c
-	ntfs_free(page);
Kmods SIG 8b815c
+	kfree(page);
Kmods SIG 8b815c
 	page = NULL;
Kmods SIG 8b815c
 	reuse_page = 0;
Kmods SIG 8b815c
 	goto next_page;
Kmods SIG 8b815c
@@ -2092,7 +2092,7 @@ static int last_log_lsn(struct ntfs_log *log)
Kmods SIG 8b815c
 	cur_pos = 2;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 next_test_page:
Kmods SIG 8b815c
-	ntfs_free(tst_page);
Kmods SIG 8b815c
+	kfree(tst_page);
Kmods SIG 8b815c
 	tst_page = NULL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	/* Walk through the file, reading log pages */
Kmods SIG 8b815c
@@ -2151,7 +2151,7 @@ static int last_log_lsn(struct ntfs_log *log)
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	/* Call our routine to check this log page */
Kmods SIG 8b815c
-	ntfs_free(tst_page);
Kmods SIG 8b815c
+	kfree(tst_page);
Kmods SIG 8b815c
 	tst_page = NULL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	err = read_log_page(log, nextpage_off, &tst_page, &usa_error);
Kmods SIG 8b815c
@@ -2186,7 +2186,7 @@ static int last_log_lsn(struct ntfs_log *log)
Kmods SIG 8b815c
 			u64 off = hdr_file_off(log, tmp_page);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 			if (!page) {
Kmods SIG 8b815c
-				page = ntfs_malloc(log->page_size);
Kmods SIG 8b815c
+				page = kmalloc(log->page_size, GFP_NOFS);
Kmods SIG 8b815c
 				if (!page)
Kmods SIG 8b815c
 					return -ENOMEM;
Kmods SIG 8b815c
 			}
Kmods SIG 8b815c
@@ -2231,11 +2231,11 @@ static int last_log_lsn(struct ntfs_log *log)
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(second_tail);
Kmods SIG 8b815c
-	ntfs_free(first_tail);
Kmods SIG 8b815c
-	ntfs_free(page);
Kmods SIG 8b815c
-	ntfs_free(tst_page);
Kmods SIG 8b815c
-	ntfs_free(page_bufs);
Kmods SIG 8b815c
+	kfree(second_tail);
Kmods SIG 8b815c
+	kfree(first_tail);
Kmods SIG 8b815c
+	kfree(page);
Kmods SIG 8b815c
+	kfree(tst_page);
Kmods SIG 8b815c
+	kfree(page_bufs);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
@@ -2311,7 +2311,7 @@ static int read_log_rec_buf(struct ntfs_log *log,
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(ph);
Kmods SIG 8b815c
+	kfree(ph);
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -2360,7 +2360,7 @@ static int read_rst_area(struct ntfs_log *log, struct NTFS_RESTART **rst_,
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	rst = ntfs_malloc(len);
Kmods SIG 8b815c
+	rst = kmalloc(len, GFP_NOFS);
Kmods SIG 8b815c
 	if (!rst) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -2375,8 +2375,8 @@ static int read_rst_area(struct ntfs_log *log, struct NTFS_RESTART **rst_,
Kmods SIG 8b815c
 	rst = NULL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(rh);
Kmods SIG 8b815c
-	ntfs_free(rst);
Kmods SIG 8b815c
+	kfree(rh);
Kmods SIG 8b815c
+	kfree(rst);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
@@ -2419,7 +2419,7 @@ static int find_log_rec(struct ntfs_log *log, u64 lsn, struct lcb *lcb)
Kmods SIG 8b815c
 	 * put a pointer to the log record the context block
Kmods SIG 8b815c
 	 */
Kmods SIG 8b815c
 	if (rh->flags & LOG_RECORD_MULTI_PAGE) {
Kmods SIG 8b815c
-		void *lr = ntfs_malloc(len);
Kmods SIG 8b815c
+		void *lr = kmalloc(len, GFP_NOFS);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		if (!lr)
Kmods SIG 8b815c
 			return -ENOMEM;
Kmods SIG 8b815c
@@ -2472,7 +2472,7 @@ static int read_log_rec_lcb(struct ntfs_log *log, u64 lsn, u32 ctx_mode,
Kmods SIG 8b815c
 	if (!verify_client_lsn(log, cr, lsn))
Kmods SIG 8b815c
 		return -EINVAL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	lcb = ntfs_zalloc(sizeof(struct lcb));
Kmods SIG 8b815c
+	lcb = kzalloc(sizeof(struct lcb), GFP_NOFS);
Kmods SIG 8b815c
 	if (!lcb)
Kmods SIG 8b815c
 		return -ENOMEM;
Kmods SIG 8b815c
 	lcb->client = log->client_id;
Kmods SIG 8b815c
@@ -2521,7 +2521,7 @@ static int find_client_next_lsn(struct ntfs_log *log, struct lcb *lcb, u64 *lsn)
Kmods SIG 8b815c
 			break;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		if (hdr != lcb->lrh)
Kmods SIG 8b815c
-			ntfs_free(hdr);
Kmods SIG 8b815c
+			kfree(hdr);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		hdr = NULL;
Kmods SIG 8b815c
 		err = read_log_page(log, lsn_to_vbo(log, current_lsn),
Kmods SIG 8b815c
@@ -2533,7 +2533,7 @@ static int find_client_next_lsn(struct ntfs_log *log, struct lcb *lcb, u64 *lsn)
Kmods SIG 8b815c
 			   sizeof(struct CLIENT_ID))) {
Kmods SIG 8b815c
 			/*err = -EINVAL; */
Kmods SIG 8b815c
 		} else if (LfsClientRecord == hdr->record_type) {
Kmods SIG 8b815c
-			ntfs_free(lcb->lrh);
Kmods SIG 8b815c
+			kfree(lcb->lrh);
Kmods SIG 8b815c
 			lcb->lrh = hdr;
Kmods SIG 8b815c
 			*lsn = current_lsn;
Kmods SIG 8b815c
 			return 0;
Kmods SIG 8b815c
@@ -2542,7 +2542,7 @@ static int find_client_next_lsn(struct ntfs_log *log, struct lcb *lcb, u64 *lsn)
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
 	if (hdr != lcb->lrh)
Kmods SIG 8b815c
-		ntfs_free(hdr);
Kmods SIG 8b815c
+		kfree(hdr);
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 check_undo_next:
Kmods SIG 8b815c
@@ -2566,7 +2566,7 @@ static int find_client_next_lsn(struct ntfs_log *log, struct lcb *lcb, u64 *lsn)
Kmods SIG 8b815c
 			    (struct RECORD_PAGE_HDR **)&hdr, NULL);
Kmods SIG 8b815c
 	if (err)
Kmods SIG 8b815c
 		return err;
Kmods SIG 8b815c
-	ntfs_free(lcb->lrh);
Kmods SIG 8b815c
+	kfree(lcb->lrh);
Kmods SIG 8b815c
 	lcb->lrh = hdr;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	*lsn = next_lsn;
Kmods SIG 8b815c
@@ -2586,11 +2586,11 @@ static int read_next_log_rec(struct ntfs_log *log, struct lcb *lcb, u64 *lsn)
Kmods SIG 8b815c
 		return 0;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (lcb->alloc)
Kmods SIG 8b815c
-		ntfs_free(lcb->log_rec);
Kmods SIG 8b815c
+		kfree(lcb->log_rec);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	lcb->log_rec = NULL;
Kmods SIG 8b815c
 	lcb->alloc = false;
Kmods SIG 8b815c
-	ntfs_free(lcb->lrh);
Kmods SIG 8b815c
+	kfree(lcb->lrh);
Kmods SIG 8b815c
 	lcb->lrh = NULL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return find_log_rec(log, *lsn, lcb);
Kmods SIG 8b815c
@@ -2987,7 +2987,7 @@ static struct ATTRIB *attr_create_nonres_log(struct ntfs_sb_info *sbi,
Kmods SIG 8b815c
 	u32 asize = name_size +
Kmods SIG 8b815c
 		    (is_ext ? SIZEOF_NONRESIDENT_EX : SIZEOF_NONRESIDENT);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	attr = ntfs_zalloc(asize);
Kmods SIG 8b815c
+	attr = kzalloc(asize, GFP_NOFS);
Kmods SIG 8b815c
 	if (!attr)
Kmods SIG 8b815c
 		return NULL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -3087,7 +3087,7 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe,
Kmods SIG 8b815c
 		if (inode) {
Kmods SIG 8b815c
 			mi = &ntfs_i(inode)->mi;
Kmods SIG 8b815c
 		} else if (op == InitializeFileRecordSegment) {
Kmods SIG 8b815c
-			mi = ntfs_zalloc(sizeof(struct mft_inode));
Kmods SIG 8b815c
+			mi = kzalloc(sizeof(struct mft_inode), GFP_NOFS);
Kmods SIG 8b815c
 			if (!mi)
Kmods SIG 8b815c
 				return -ENOMEM;
Kmods SIG 8b815c
 			err = mi_format_new(mi, sbi, rno, 0, false);
Kmods SIG 8b815c
@@ -3181,7 +3181,7 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe,
Kmods SIG 8b815c
 		if (attr->type == ATTR_ALLOC)
Kmods SIG 8b815c
 			bytes = (bytes + 511) & ~511; // align
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-		buffer_le = ntfs_malloc(bytes);
Kmods SIG 8b815c
+		buffer_le = kmalloc(bytes, GFP_NOFS);
Kmods SIG 8b815c
 		if (!buffer_le)
Kmods SIG 8b815c
 			return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -3250,11 +3250,11 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		oa2 = find_loaded_attr(log, attr, rno_base);
Kmods SIG 8b815c
 		if (oa2) {
Kmods SIG 8b815c
-			void *p2 = ntfs_memdup(attr, le32_to_cpu(attr->size));
Kmods SIG 8b815c
-
Kmods SIG 8b815c
+			void *p2 = kmemdup(attr, le32_to_cpu(attr->size),
Kmods SIG 8b815c
+					   GFP_NOFS);
Kmods SIG 8b815c
 			if (p2) {
Kmods SIG 8b815c
 				// run_close(oa2->run1);
Kmods SIG 8b815c
-				ntfs_free(oa2->attr);
Kmods SIG 8b815c
+				kfree(oa2->attr);
Kmods SIG 8b815c
 				oa2->attr = p2;
Kmods SIG 8b815c
 			}
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
@@ -3317,12 +3317,12 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		oa2 = find_loaded_attr(log, attr, rno_base);
Kmods SIG 8b815c
 		if (oa2) {
Kmods SIG 8b815c
-			void *p2 = ntfs_memdup(attr, le32_to_cpu(attr->size));
Kmods SIG 8b815c
-
Kmods SIG 8b815c
+			void *p2 = kmemdup(attr, le32_to_cpu(attr->size),
Kmods SIG 8b815c
+					   GFP_NOFS);
Kmods SIG 8b815c
 			if (p2) {
Kmods SIG 8b815c
 				// run_close(&oa2->run0);
Kmods SIG 8b815c
 				oa2->run1 = &oa2->run0;
Kmods SIG 8b815c
-				ntfs_free(oa2->attr);
Kmods SIG 8b815c
+				kfree(oa2->attr);
Kmods SIG 8b815c
 				oa2->attr = p2;
Kmods SIG 8b815c
 			}
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
@@ -3376,10 +3376,10 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		oa2 = find_loaded_attr(log, attr, rno_base);
Kmods SIG 8b815c
 		if (oa2) {
Kmods SIG 8b815c
-			void *p2 = ntfs_memdup(attr, le32_to_cpu(attr->size));
Kmods SIG 8b815c
-
Kmods SIG 8b815c
+			void *p2 = kmemdup(attr, le32_to_cpu(attr->size),
Kmods SIG 8b815c
+					   GFP_NOFS);
Kmods SIG 8b815c
 			if (p2) {
Kmods SIG 8b815c
-				ntfs_free(oa2->attr);
Kmods SIG 8b815c
+				kfree(oa2->attr);
Kmods SIG 8b815c
 				oa2->attr = p2;
Kmods SIG 8b815c
 			}
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
@@ -3714,7 +3714,7 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe,
Kmods SIG 8b815c
 	else if (mi != mi2_child)
Kmods SIG 8b815c
 		mi_put(mi);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(buffer_le);
Kmods SIG 8b815c
+	kfree(buffer_le);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -3783,13 +3783,13 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 	if (!page_size)
Kmods SIG 8b815c
 		return -EINVAL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	log = ntfs_zalloc(sizeof(struct ntfs_log));
Kmods SIG 8b815c
+	log = kzalloc(sizeof(struct ntfs_log), GFP_NOFS);
Kmods SIG 8b815c
 	if (!log)
Kmods SIG 8b815c
 		return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	log->ni = ni;
Kmods SIG 8b815c
 	log->l_size = l_size;
Kmods SIG 8b815c
-	log->one_page_buf = ntfs_malloc(page_size);
Kmods SIG 8b815c
+	log->one_page_buf = kmalloc(page_size, GFP_NOFS);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (!log->one_page_buf) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
@@ -3854,17 +3854,17 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 		    sp->rhdr.sign == NTFS_CHKD_SIGNATURE) {
Kmods SIG 8b815c
 			use_second_page = false;
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
-		ntfs_free(sp);
Kmods SIG 8b815c
+		kfree(sp);
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (use_second_page) {
Kmods SIG 8b815c
-		ntfs_free(rst_info.r_page);
Kmods SIG 8b815c
+		kfree(rst_info.r_page);
Kmods SIG 8b815c
 		memcpy(&rst_info, &rst_info2, sizeof(struct restart_info));
Kmods SIG 8b815c
 		rst_info2.r_page = NULL;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 use_first_page:
Kmods SIG 8b815c
-	ntfs_free(rst_info2.r_page);
Kmods SIG 8b815c
+	kfree(rst_info2.r_page);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 check_restart_area:
Kmods SIG 8b815c
 	/* If the restart area is at offset 0, we want to write the second restart area first */
Kmods SIG 8b815c
@@ -4012,7 +4012,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	log->current_avail = current_log_avail(log);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ra = ntfs_zalloc(log->restart_size);
Kmods SIG 8b815c
+	ra = kzalloc(log->restart_size, GFP_NOFS);
Kmods SIG 8b815c
 	if (!ra) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -4147,7 +4147,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	trtbl = ntfs_memdup(rt, t32);
Kmods SIG 8b815c
+	trtbl = kmemdup(rt, t32, GFP_NOFS);
Kmods SIG 8b815c
 	if (!trtbl) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -4187,7 +4187,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	dptbl = ntfs_memdup(rt, t32);
Kmods SIG 8b815c
+	dptbl = kmemdup(rt, t32, GFP_NOFS);
Kmods SIG 8b815c
 	if (!dptbl) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -4254,7 +4254,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 	t32 = lrh_length(lrh);
Kmods SIG 8b815c
 	rec_len -= t32;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	attr_names = ntfs_memdup(Add2Ptr(lrh, t32), rec_len);
Kmods SIG 8b815c
+	attr_names = kmemdup(Add2Ptr(lrh, t32), rec_len, GFP_NOFS);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	lcb_put(lcb);
Kmods SIG 8b815c
 	lcb = NULL;
Kmods SIG 8b815c
@@ -4289,7 +4289,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	oatbl = ntfs_memdup(rt, t32);
Kmods SIG 8b815c
+	oatbl = kmemdup(rt, t32, GFP_NOFS);
Kmods SIG 8b815c
 	if (!oatbl) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -4472,7 +4472,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 			      sizeof(u64);
Kmods SIG 8b815c
 		} else {
Kmods SIG 8b815c
 			t32 = log->clst_per_page;
Kmods SIG 8b815c
-			ntfs_free(dptbl);
Kmods SIG 8b815c
+			kfree(dptbl);
Kmods SIG 8b815c
 			dptbl = init_rsttbl(struct_size(dp, page_lcns, t32),
Kmods SIG 8b815c
 					    32);
Kmods SIG 8b815c
 			if (!dptbl) {
Kmods SIG 8b815c
@@ -4575,7 +4575,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		t16 = le16_to_cpu(lrh->undo_len);
Kmods SIG 8b815c
 		if (t16) {
Kmods SIG 8b815c
-			oe->ptr = ntfs_malloc(t16);
Kmods SIG 8b815c
+			oe->ptr = kmalloc(t16, GFP_NOFS);
Kmods SIG 8b815c
 			if (!oe->ptr) {
Kmods SIG 8b815c
 				err = -ENOMEM;
Kmods SIG 8b815c
 				goto out;
Kmods SIG 8b815c
@@ -4680,7 +4680,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 		goto next_dirty_page;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	oa = ntfs_zalloc(sizeof(struct OpenAttr));
Kmods SIG 8b815c
+	oa = kzalloc(sizeof(struct OpenAttr), GFP_NOFS);
Kmods SIG 8b815c
 	if (!oa) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -4701,7 +4701,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 		attr = attr_create_nonres_log(sbi, oe->type, 0, oe->ptr,
Kmods SIG 8b815c
 					      oe->name_len, 0);
Kmods SIG 8b815c
 		if (!attr) {
Kmods SIG 8b815c
-			ntfs_free(oa);
Kmods SIG 8b815c
+			kfree(oa);
Kmods SIG 8b815c
 			err = -ENOMEM;
Kmods SIG 8b815c
 			goto out;
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
@@ -4720,7 +4720,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 		goto fake_attr;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	t32 = le32_to_cpu(attr->size);
Kmods SIG 8b815c
-	oa->attr = ntfs_memdup(attr, t32);
Kmods SIG 8b815c
+	oa->attr = kmemdup(attr, t32, GFP_NOFS);
Kmods SIG 8b815c
 	if (!oa->attr)
Kmods SIG 8b815c
 		goto fake_attr;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -4746,7 +4746,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 				 le64_to_cpu(attr->nres.evcn), svcn,
Kmods SIG 8b815c
 				 Add2Ptr(attr, roff), t32 - roff);
Kmods SIG 8b815c
 		if (err < 0) {
Kmods SIG 8b815c
-			ntfs_free(oa->attr);
Kmods SIG 8b815c
+			kfree(oa->attr);
Kmods SIG 8b815c
 			oa->attr = NULL;
Kmods SIG 8b815c
 			goto fake_attr;
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
@@ -4757,7 +4757,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 final_oe:
Kmods SIG 8b815c
 	if (oe->is_attr_name == 1)
Kmods SIG 8b815c
-		ntfs_free(oe->ptr);
Kmods SIG 8b815c
+		kfree(oe->ptr);
Kmods SIG 8b815c
 	oe->is_attr_name = 0;
Kmods SIG 8b815c
 	oe->ptr = oa;
Kmods SIG 8b815c
 	oe->name_len = attr->name_len;
Kmods SIG 8b815c
@@ -5090,7 +5090,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 	if (is_ro)
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	rh = ntfs_zalloc(log->page_size);
Kmods SIG 8b815c
+	rh = kzalloc(log->page_size, GFP_NOFS);
Kmods SIG 8b815c
 	if (!rh) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -5125,12 +5125,12 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 		err = ntfs_sb_write_run(sbi, &log->ni->file.run, log->page_size,
Kmods SIG 8b815c
 					rh, log->page_size);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(rh);
Kmods SIG 8b815c
+	kfree(rh);
Kmods SIG 8b815c
 	if (err)
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(rst);
Kmods SIG 8b815c
+	kfree(rst);
Kmods SIG 8b815c
 	if (lcb)
Kmods SIG 8b815c
 		lcb_put(lcb);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -5140,7 +5140,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 		rno = ino_get(&oe->ref);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		if (oe->is_attr_name == 1) {
Kmods SIG 8b815c
-			ntfs_free(oe->ptr);
Kmods SIG 8b815c
+			kfree(oe->ptr);
Kmods SIG 8b815c
 			oe->ptr = NULL;
Kmods SIG 8b815c
 			continue;
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
@@ -5153,20 +5153,20 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 			continue;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		run_close(&oa->run0);
Kmods SIG 8b815c
-		ntfs_free(oa->attr);
Kmods SIG 8b815c
+		kfree(oa->attr);
Kmods SIG 8b815c
 		if (oa->ni)
Kmods SIG 8b815c
 			iput(&oa->ni->vfs_inode);
Kmods SIG 8b815c
-		ntfs_free(oa);
Kmods SIG 8b815c
+		kfree(oa);
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(trtbl);
Kmods SIG 8b815c
-	ntfs_free(oatbl);
Kmods SIG 8b815c
-	ntfs_free(dptbl);
Kmods SIG 8b815c
-	ntfs_free(attr_names);
Kmods SIG 8b815c
-	ntfs_free(rst_info.r_page);
Kmods SIG 8b815c
+	kfree(trtbl);
Kmods SIG 8b815c
+	kfree(oatbl);
Kmods SIG 8b815c
+	kfree(dptbl);
Kmods SIG 8b815c
+	kfree(attr_names);
Kmods SIG 8b815c
+	kfree(rst_info.r_page);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(ra);
Kmods SIG 8b815c
-	ntfs_free(log->one_page_buf);
Kmods SIG 8b815c
+	kfree(ra);
Kmods SIG 8b815c
+	kfree(log->one_page_buf);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (err)
Kmods SIG 8b815c
 		sbi->flags |= NTFS_FLAGS_NEED_REPLAY;
Kmods SIG 8b815c
@@ -5176,7 +5176,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
Kmods SIG 8b815c
 	else if (log->set_dirty)
Kmods SIG 8b815c
 		ntfs_set_state(sbi, NTFS_DIRTY_ERROR);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(log);
Kmods SIG 8b815c
+	kfree(log);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
diff --git a/src/fsntfs.c b/src/fsntfs.c
Kmods SIG 8b815c
index e887921a117d9124c6d4987397a694f7c99a09ea..fb2652c8dd74c9934a73d0076409a95e3bb6815f 100644
Kmods SIG 8b815c
--- a/src/fsntfs.c
Kmods SIG 8b815c
+++ b/src/fsntfs.c
Kmods SIG 8b815c
@@ -2035,7 +2035,7 @@ int ntfs_get_security_by_id(struct ntfs_sb_info *sbi, __le32 security_id,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	*size = t32 - SIZEOF_SECURITY_HDR;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	p = ntfs_malloc(*size);
Kmods SIG 8b815c
+	p = kmalloc(*size, GFP_NOFS);
Kmods SIG 8b815c
 	if (!p) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -2063,7 +2063,7 @@ int ntfs_get_security_by_id(struct ntfs_sb_info *sbi, __le32 security_id,
Kmods SIG 8b815c
 	p = NULL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(p);
Kmods SIG 8b815c
+	kfree(p);
Kmods SIG 8b815c
 	fnd_put(fnd_sii);
Kmods SIG 8b815c
 	ni_unlock(ni);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -2115,7 +2115,7 @@ int ntfs_insert_security(struct ntfs_sb_info *sbi,
Kmods SIG 8b815c
 	*security_id = SECURITY_ID_INVALID;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	/* Allocate a temporal buffer*/
Kmods SIG 8b815c
-	d_security = ntfs_zalloc(aligned_sec_size);
Kmods SIG 8b815c
+	d_security = kzalloc(aligned_sec_size, GFP_NOFS);
Kmods SIG 8b815c
 	if (!d_security)
Kmods SIG 8b815c
 		return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -2279,7 +2279,7 @@ int ntfs_insert_security(struct ntfs_sb_info *sbi,
Kmods SIG 8b815c
 	fnd_put(fnd_sdh);
Kmods SIG 8b815c
 	mark_inode_dirty(&ni->vfs_inode);
Kmods SIG 8b815c
 	ni_unlock(ni);
Kmods SIG 8b815c
-	ntfs_free(d_security);
Kmods SIG 8b815c
+	kfree(d_security);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
diff --git a/src/index.c b/src/index.c
Kmods SIG 8b815c
index cc03cb953dd0c6f76aa900a7ee8ae2daf41d55b2..334a3cef714b3e5c5b6fc31b3fd33d39bb5caa25 100644
Kmods SIG 8b815c
--- a/src/index.c
Kmods SIG 8b815c
+++ b/src/index.c
Kmods SIG 8b815c
@@ -682,7 +682,7 @@ static struct NTFS_DE *hdr_find_e(const struct ntfs_index *indx,
Kmods SIG 8b815c
 	if (end > 0x10000)
Kmods SIG 8b815c
 		goto next;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	offs = ntfs_malloc(sizeof(u16) * nslots);
Kmods SIG 8b815c
+	offs = kmalloc(sizeof(u16) * nslots, GFP_NOFS);
Kmods SIG 8b815c
 	if (!offs)
Kmods SIG 8b815c
 		goto next;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -704,10 +704,10 @@ static struct NTFS_DE *hdr_find_e(const struct ntfs_index *indx,
Kmods SIG 8b815c
 		u16 *ptr;
Kmods SIG 8b815c
 		int new_slots = ALIGN(2 * nslots, 8);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-		ptr = ntfs_malloc(sizeof(u16) * new_slots);
Kmods SIG 8b815c
+		ptr = kmalloc(sizeof(u16) * new_slots, GFP_NOFS);
Kmods SIG 8b815c
 		if (ptr)
Kmods SIG 8b815c
 			memcpy(ptr, offs, sizeof(u16) * max_idx);
Kmods SIG 8b815c
-		ntfs_free(offs);
Kmods SIG 8b815c
+		kfree(offs);
Kmods SIG 8b815c
 		offs = ptr;
Kmods SIG 8b815c
 		nslots = new_slots;
Kmods SIG 8b815c
 		if (!ptr)
Kmods SIG 8b815c
@@ -764,7 +764,7 @@ static struct NTFS_DE *hdr_find_e(const struct ntfs_index *indx,
Kmods SIG 8b815c
 	e = Add2Ptr(hdr, offs[fnd]);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out1:
Kmods SIG 8b815c
-	ntfs_free(offs);
Kmods SIG 8b815c
+	kfree(offs);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return e;
Kmods SIG 8b815c
 #endif
Kmods SIG 8b815c
@@ -934,21 +934,21 @@ static struct indx_node *indx_new(struct ntfs_index *indx,
Kmods SIG 8b815c
 	u16 fn;
Kmods SIG 8b815c
 	u32 eo;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	r = ntfs_zalloc(sizeof(struct indx_node));
Kmods SIG 8b815c
+	r = kzalloc(sizeof(struct indx_node), GFP_NOFS);
Kmods SIG 8b815c
 	if (!r)
Kmods SIG 8b815c
 		return ERR_PTR(-ENOMEM);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	index = ntfs_zalloc(bytes);
Kmods SIG 8b815c
+	index = kzalloc(bytes, GFP_NOFS);
Kmods SIG 8b815c
 	if (!index) {
Kmods SIG 8b815c
-		ntfs_free(r);
Kmods SIG 8b815c
+		kfree(r);
Kmods SIG 8b815c
 		return ERR_PTR(-ENOMEM);
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	err = ntfs_get_bh(ni->mi.sbi, &indx->alloc_run, vbo, bytes, &r->nb);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (err) {
Kmods SIG 8b815c
-		ntfs_free(index);
Kmods SIG 8b815c
-		ntfs_free(r);
Kmods SIG 8b815c
+		kfree(index);
Kmods SIG 8b815c
+		kfree(r);
Kmods SIG 8b815c
 		return ERR_PTR(err);
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1027,7 +1027,7 @@ int indx_read(struct ntfs_index *indx, struct ntfs_inode *ni, CLST vbn,
Kmods SIG 8b815c
 	const struct INDEX_NAMES *name;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (!in) {
Kmods SIG 8b815c
-		in = ntfs_zalloc(sizeof(struct indx_node));
Kmods SIG 8b815c
+		in = kzalloc(sizeof(struct indx_node), GFP_NOFS);
Kmods SIG 8b815c
 		if (!in)
Kmods SIG 8b815c
 			return -ENOMEM;
Kmods SIG 8b815c
 	} else {
Kmods SIG 8b815c
@@ -1036,7 +1036,7 @@ int indx_read(struct ntfs_index *indx, struct ntfs_inode *ni, CLST vbn,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	ib = in->index;
Kmods SIG 8b815c
 	if (!ib) {
Kmods SIG 8b815c
-		ib = ntfs_malloc(bytes);
Kmods SIG 8b815c
+		ib = kmalloc(bytes, GFP_NOFS);
Kmods SIG 8b815c
 		if (!ib) {
Kmods SIG 8b815c
 			err = -ENOMEM;
Kmods SIG 8b815c
 			goto out;
Kmods SIG 8b815c
@@ -1083,11 +1083,11 @@ int indx_read(struct ntfs_index *indx, struct ntfs_inode *ni, CLST vbn,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
 	if (ib != in->index)
Kmods SIG 8b815c
-		ntfs_free(ib);
Kmods SIG 8b815c
+		kfree(ib);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (*node != in) {
Kmods SIG 8b815c
 		nb_put(&in->nb);
Kmods SIG 8b815c
-		ntfs_free(in);
Kmods SIG 8b815c
+		kfree(in);
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
@@ -1219,7 +1219,7 @@ int indx_find_sort(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 		    sizeof(struct NTFS_DE) + sizeof(u64)) {
Kmods SIG 8b815c
 			if (n) {
Kmods SIG 8b815c
 				fnd_pop(fnd);
Kmods SIG 8b815c
-				ntfs_free(n);
Kmods SIG 8b815c
+				kfree(n);
Kmods SIG 8b815c
 			}
Kmods SIG 8b815c
 			return -EINVAL;
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
@@ -1232,7 +1232,7 @@ int indx_find_sort(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 		/* Try next level */
Kmods SIG 8b815c
 		e = hdr_first_de(&n->index->ihdr);
Kmods SIG 8b815c
 		if (!e) {
Kmods SIG 8b815c
-			ntfs_free(n);
Kmods SIG 8b815c
+			kfree(n);
Kmods SIG 8b815c
 			return -EINVAL;
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1252,7 +1252,7 @@ int indx_find_sort(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 		/* Pop one level */
Kmods SIG 8b815c
 		if (n) {
Kmods SIG 8b815c
 			fnd_pop(fnd);
Kmods SIG 8b815c
-			ntfs_free(n);
Kmods SIG 8b815c
+			kfree(n);
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		level = fnd->level;
Kmods SIG 8b815c
@@ -1589,7 +1589,7 @@ static int indx_insert_into_root(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	/* Make a copy of root attribute to restore if error */
Kmods SIG 8b815c
-	a_root = ntfs_memdup(attr, asize);
Kmods SIG 8b815c
+	a_root = kmemdup(attr, asize, GFP_NOFS);
Kmods SIG 8b815c
 	if (!a_root) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -1615,7 +1615,7 @@ static int indx_insert_into_root(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 	if (!to_move) {
Kmods SIG 8b815c
 		re = NULL;
Kmods SIG 8b815c
 	} else {
Kmods SIG 8b815c
-		re = ntfs_memdup(e0, to_move);
Kmods SIG 8b815c
+		re = kmemdup(e0, to_move, GFP_NOFS);
Kmods SIG 8b815c
 		if (!re) {
Kmods SIG 8b815c
 			err = -ENOMEM;
Kmods SIG 8b815c
 			goto out;
Kmods SIG 8b815c
@@ -1708,7 +1708,7 @@ static int indx_insert_into_root(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 		 * new entry classic case when mft record is 1K and index
Kmods SIG 8b815c
 		 * buffer 4K the problem should not occurs
Kmods SIG 8b815c
 		 */
Kmods SIG 8b815c
-		ntfs_free(re);
Kmods SIG 8b815c
+		kfree(re);
Kmods SIG 8b815c
 		indx_write(indx, ni, n, 0);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		put_indx_node(n);
Kmods SIG 8b815c
@@ -1734,12 +1734,12 @@ static int indx_insert_into_root(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 	n = NULL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out1:
Kmods SIG 8b815c
-	ntfs_free(re);
Kmods SIG 8b815c
+	kfree(re);
Kmods SIG 8b815c
 	if (n)
Kmods SIG 8b815c
 		put_indx_node(n);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(a_root);
Kmods SIG 8b815c
+	kfree(a_root);
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1792,7 +1792,7 @@ indx_insert_into_buffer(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 		return -EINVAL;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	sp_size = le16_to_cpu(sp->size);
Kmods SIG 8b815c
-	up_e = ntfs_malloc(sp_size + sizeof(u64));
Kmods SIG 8b815c
+	up_e = kmalloc(sp_size + sizeof(u64), GFP_NOFS);
Kmods SIG 8b815c
 	if (!up_e)
Kmods SIG 8b815c
 		return -ENOMEM;
Kmods SIG 8b815c
 	memcpy(up_e, sp, sp_size);
Kmods SIG 8b815c
@@ -1870,7 +1870,7 @@ indx_insert_into_buffer(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(up_e);
Kmods SIG 8b815c
+	kfree(up_e);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
@@ -2149,7 +2149,7 @@ static int indx_get_entry_to_replace(struct ntfs_index *indx,
Kmods SIG 8b815c
 	n = fnd->nodes[level];
Kmods SIG 8b815c
 	te = hdr_first_de(&n->index->ihdr);
Kmods SIG 8b815c
 	/* Copy the candidate entry into the replacement entry buffer. */
Kmods SIG 8b815c
-	re = ntfs_malloc(le16_to_cpu(te->size) + sizeof(u64));
Kmods SIG 8b815c
+	re = kmalloc(le16_to_cpu(te->size) + sizeof(u64), GFP_NOFS);
Kmods SIG 8b815c
 	if (!re) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -2301,7 +2301,7 @@ int indx_delete_entry(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 							      fnd)
Kmods SIG 8b815c
 				    : indx_insert_into_root(indx, ni, re, e,
Kmods SIG 8b815c
 							    ctx, fnd);
Kmods SIG 8b815c
-			ntfs_free(re);
Kmods SIG 8b815c
+			kfree(re);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 			if (err)
Kmods SIG 8b815c
 				goto out;
Kmods SIG 8b815c
@@ -2459,7 +2459,7 @@ int indx_delete_entry(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 		 * as appropriate.
Kmods SIG 8b815c
 		 */
Kmods SIG 8b815c
 		e_size = le16_to_cpu(e->size);
Kmods SIG 8b815c
-		me = ntfs_memdup(e, e_size);
Kmods SIG 8b815c
+		me = kmemdup(e, e_size, GFP_NOFS);
Kmods SIG 8b815c
 		if (!me) {
Kmods SIG 8b815c
 			err = -ENOMEM;
Kmods SIG 8b815c
 			goto out;
Kmods SIG 8b815c
@@ -2505,7 +2505,7 @@ int indx_delete_entry(struct ntfs_index *indx, struct ntfs_inode *ni,
Kmods SIG 8b815c
 		 * Find the spot the tree where we want to insert the new entry.
Kmods SIG 8b815c
 		 */
Kmods SIG 8b815c
 		err = indx_insert_entry(indx, ni, me, ctx, fnd);
Kmods SIG 8b815c
-		ntfs_free(me);
Kmods SIG 8b815c
+		kfree(me);
Kmods SIG 8b815c
 		if (err)
Kmods SIG 8b815c
 			goto out;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
diff --git a/src/inode.c b/src/inode.c
Kmods SIG 8b815c
index 3a857e575ef23d059b5eb761d3b91df52a592037..520471f35e298cdafc929c1e262409ad91ccb250 100644
Kmods SIG 8b815c
--- a/src/inode.c
Kmods SIG 8b815c
+++ b/src/inode.c
Kmods SIG 8b815c
@@ -1096,7 +1096,7 @@ ntfs_create_reparse_buffer(struct ntfs_sb_info *sbi, const char *symname,
Kmods SIG 8b815c
 	__le16 *rp_name;
Kmods SIG 8b815c
 	typeof(rp->SymbolicLinkReparseBuffer) *rs;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	rp = ntfs_zalloc(ntfs_reparse_bytes(2 * size + 2));
Kmods SIG 8b815c
+	rp = kzalloc(ntfs_reparse_bytes(2 * size + 2), GFP_NOFS);
Kmods SIG 8b815c
 	if (!rp)
Kmods SIG 8b815c
 		return ERR_PTR(-ENOMEM);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1151,7 +1151,7 @@ ntfs_create_reparse_buffer(struct ntfs_sb_info *sbi, const char *symname,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return rp;
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(rp);
Kmods SIG 8b815c
+	kfree(rp);
Kmods SIG 8b815c
 	return ERR_PTR(err);
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1619,7 +1619,7 @@ struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out2:
Kmods SIG 8b815c
 	__putname(new_de);
Kmods SIG 8b815c
-	ntfs_free(rp);
Kmods SIG 8b815c
+	kfree(rp);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out1:
Kmods SIG 8b815c
 	if (err)
Kmods SIG 8b815c
@@ -1862,7 +1862,7 @@ static noinline int ntfs_readlink_hlp(struct inode *inode, char *buffer,
Kmods SIG 8b815c
 			goto out;
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
 	} else {
Kmods SIG 8b815c
-		rp = ntfs_malloc(i_size);
Kmods SIG 8b815c
+		rp = kmalloc(i_size, GFP_NOFS);
Kmods SIG 8b815c
 		if (!rp) {
Kmods SIG 8b815c
 			err = -ENOMEM;
Kmods SIG 8b815c
 			goto out;
Kmods SIG 8b815c
@@ -1972,7 +1972,7 @@ static noinline int ntfs_readlink_hlp(struct inode *inode, char *buffer,
Kmods SIG 8b815c
 	/* Always set last zero */
Kmods SIG 8b815c
 	buffer[err] = 0;
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(to_free);
Kmods SIG 8b815c
+	kfree(to_free);
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
diff --git a/src/lznt.c b/src/lznt.c
Kmods SIG 8b815c
index ead9ab7d69b3082e429ac79b973aab461d3cfd7a..eb43b9f5149b0d0e6364c6226b426f61d7e651de 100644
Kmods SIG 8b815c
--- a/src/lznt.c
Kmods SIG 8b815c
+++ b/src/lznt.c
Kmods SIG 8b815c
@@ -294,8 +294,8 @@ static inline ssize_t decompress_chunk(u8 *unc, u8 *unc_end, const u8 *cmpr,
Kmods SIG 8b815c
  */
Kmods SIG 8b815c
 struct lznt *get_lznt_ctx(int level)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
-	struct lznt *r = ntfs_zalloc(level ? offsetof(struct lznt, hash)
Kmods SIG 8b815c
-					   : sizeof(struct lznt));
Kmods SIG 8b815c
+	struct lznt *r = kzalloc(level ? offsetof(struct lznt, hash) :
Kmods SIG 8b815c
+					 sizeof(struct lznt), GFP_NOFS);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (r)
Kmods SIG 8b815c
 		r->std = !level;
Kmods SIG 8b815c
diff --git a/src/ntfs_fs.h b/src/ntfs_fs.h
Kmods SIG 8b815c
index d4dd19b822bc2678c3e3432a2d73f21ce0f31256..e3a667e9838f3290032e90aaded68c5b09edbb70 100644
Kmods SIG 8b815c
--- a/src/ntfs_fs.h
Kmods SIG 8b815c
+++ b/src/ntfs_fs.h
Kmods SIG 8b815c
@@ -603,13 +603,13 @@ int indx_used_bit(struct ntfs_index *indx, struct ntfs_inode *ni, size_t *bit);
Kmods SIG 8b815c
 void fnd_clear(struct ntfs_fnd *fnd);
Kmods SIG 8b815c
 static inline struct ntfs_fnd *fnd_get(void)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
-	return ntfs_zalloc(sizeof(struct ntfs_fnd));
Kmods SIG 8b815c
+	return kzalloc(sizeof(struct ntfs_fnd), GFP_NOFS);
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 static inline void fnd_put(struct ntfs_fnd *fnd)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	if (fnd) {
Kmods SIG 8b815c
 		fnd_clear(fnd);
Kmods SIG 8b815c
-		ntfs_free(fnd);
Kmods SIG 8b815c
+		kfree(fnd);
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 void indx_clear(struct ntfs_index *idx);
Kmods SIG 8b815c
@@ -875,20 +875,20 @@ static inline void run_init(struct runs_tree *run)
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 static inline struct runs_tree *run_alloc(void)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
-	return ntfs_zalloc(sizeof(struct runs_tree));
Kmods SIG 8b815c
+	return kzalloc(sizeof(struct runs_tree), GFP_NOFS);
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 static inline void run_close(struct runs_tree *run)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
-	ntfs_vfree(run->runs);
Kmods SIG 8b815c
+	kvfree(run->runs);
Kmods SIG 8b815c
 	memset(run, 0, sizeof(*run));
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 static inline void run_free(struct runs_tree *run)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	if (run) {
Kmods SIG 8b815c
-		ntfs_vfree(run->runs);
Kmods SIG 8b815c
-		ntfs_free(run);
Kmods SIG 8b815c
+		kvfree(run->runs);
Kmods SIG 8b815c
+		kfree(run);
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1044,15 +1044,15 @@ static inline void put_indx_node(struct indx_node *in)
Kmods SIG 8b815c
 	if (!in)
Kmods SIG 8b815c
 		return;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(in->index);
Kmods SIG 8b815c
+	kfree(in->index);
Kmods SIG 8b815c
 	nb_put(&in->nb);
Kmods SIG 8b815c
-	ntfs_free(in);
Kmods SIG 8b815c
+	kfree(in);
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 static inline void mi_clear(struct mft_inode *mi)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	nb_put(&mi->nb);
Kmods SIG 8b815c
-	ntfs_free(mi->mrec);
Kmods SIG 8b815c
+	kfree(mi->mrec);
Kmods SIG 8b815c
 	mi->mrec = NULL;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
diff --git a/src/record.c b/src/record.c
Kmods SIG 8b815c
index 721c14f83e2b37389a2aa23b7bb1aeffab5fd5fb..dec83ac815c7983c1367cd451fd5985aa3d425c3 100644
Kmods SIG 8b815c
--- a/src/record.c
Kmods SIG 8b815c
+++ b/src/record.c
Kmods SIG 8b815c
@@ -76,14 +76,14 @@ static __le16 mi_new_attt_id(struct mft_inode *mi)
Kmods SIG 8b815c
 int mi_get(struct ntfs_sb_info *sbi, CLST rno, struct mft_inode **mi)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	int err;
Kmods SIG 8b815c
-	struct mft_inode *m = ntfs_zalloc(sizeof(struct mft_inode));
Kmods SIG 8b815c
+	struct mft_inode *m = kzalloc(sizeof(struct mft_inode), GFP_NOFS);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (!m)
Kmods SIG 8b815c
 		return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	err = mi_init(m, sbi, rno);
Kmods SIG 8b815c
 	if (err) {
Kmods SIG 8b815c
-		ntfs_free(m);
Kmods SIG 8b815c
+		kfree(m);
Kmods SIG 8b815c
 		return err;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -100,14 +100,14 @@ int mi_get(struct ntfs_sb_info *sbi, CLST rno, struct mft_inode **mi)
Kmods SIG 8b815c
 void mi_put(struct mft_inode *mi)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	mi_clear(mi);
Kmods SIG 8b815c
-	ntfs_free(mi);
Kmods SIG 8b815c
+	kfree(mi);
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 int mi_init(struct mft_inode *mi, struct ntfs_sb_info *sbi, CLST rno)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
 	mi->sbi = sbi;
Kmods SIG 8b815c
 	mi->rno = rno;
Kmods SIG 8b815c
-	mi->mrec = ntfs_malloc(sbi->record_size);
Kmods SIG 8b815c
+	mi->mrec = kmalloc(sbi->record_size, GFP_NOFS);
Kmods SIG 8b815c
 	if (!mi->mrec)
Kmods SIG 8b815c
 		return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
diff --git a/src/run.c b/src/run.c
Kmods SIG 8b815c
index 60c64deab7389261b9cb21f03118f2e8e2b8dc05..a9989f7536ba107621d15a2653183fb61fc45abc 100644
Kmods SIG 8b815c
--- a/src/run.c
Kmods SIG 8b815c
+++ b/src/run.c
Kmods SIG 8b815c
@@ -254,7 +254,7 @@ void run_truncate_head(struct runs_tree *run, CLST vcn)
Kmods SIG 8b815c
 	run->count -= index;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	if (!run->count) {
Kmods SIG 8b815c
-		ntfs_vfree(run->runs);
Kmods SIG 8b815c
+		kvfree(run->runs);
Kmods SIG 8b815c
 		run->runs = NULL;
Kmods SIG 8b815c
 		run->allocated = 0;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
@@ -293,7 +293,7 @@ void run_truncate(struct runs_tree *run, CLST vcn)
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	/* Do not reallocate array 'runs'. Only free if possible */
Kmods SIG 8b815c
 	if (!index) {
Kmods SIG 8b815c
-		ntfs_vfree(run->runs);
Kmods SIG 8b815c
+		kvfree(run->runs);
Kmods SIG 8b815c
 		run->runs = NULL;
Kmods SIG 8b815c
 		run->allocated = 0;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
@@ -388,7 +388,7 @@ bool run_add_entry(struct runs_tree *run, CLST vcn, CLST lcn, CLST len,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 			WARN_ON(!is_mft && bytes > NTFS3_RUN_MAX_BYTES);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-			new_ptr = ntfs_vmalloc(bytes);
Kmods SIG 8b815c
+			new_ptr = kvmalloc(bytes, GFP_KERNEL);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 			if (!new_ptr)
Kmods SIG 8b815c
 				return false;
Kmods SIG 8b815c
@@ -399,7 +399,7 @@ bool run_add_entry(struct runs_tree *run, CLST vcn, CLST lcn, CLST len,
Kmods SIG 8b815c
 			memcpy(r + 1, run->runs + index,
Kmods SIG 8b815c
 			       sizeof(struct ntfs_run) * (run->count - index));
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-			ntfs_vfree(run->runs);
Kmods SIG 8b815c
+			kvfree(run->runs);
Kmods SIG 8b815c
 			run->runs = new_ptr;
Kmods SIG 8b815c
 			run->allocated = bytes;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
diff --git a/src/super.c b/src/super.c
Kmods SIG 8b815c
index 7a501bca26d7916d23dc64d7919d4ad1384d5765..17ee715ab539ee6d7605256277c1f77c3132a6fa 100644
Kmods SIG 8b815c
--- a/src/super.c
Kmods SIG 8b815c
+++ b/src/super.c
Kmods SIG 8b815c
@@ -468,9 +468,9 @@ static void init_once(void *foo)
Kmods SIG 8b815c
 /* noinline to reduce binary size*/
Kmods SIG 8b815c
 static noinline void put_ntfs(struct ntfs_sb_info *sbi)
Kmods SIG 8b815c
 {
Kmods SIG 8b815c
-	ntfs_free(sbi->new_rec);
Kmods SIG 8b815c
-	ntfs_vfree(ntfs_put_shared(sbi->upcase));
Kmods SIG 8b815c
-	ntfs_free(sbi->def_table);
Kmods SIG 8b815c
+	kfree(sbi->new_rec);
Kmods SIG 8b815c
+	kvfree(ntfs_put_shared(sbi->upcase));
Kmods SIG 8b815c
+	kfree(sbi->def_table);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	wnd_close(&sbi->mft.bitmap);
Kmods SIG 8b815c
 	wnd_close(&sbi->used.bitmap);
Kmods SIG 8b815c
@@ -496,14 +496,14 @@ static noinline void put_ntfs(struct ntfs_sb_info *sbi)
Kmods SIG 8b815c
 	indx_clear(&sbi->security.index_sdh);
Kmods SIG 8b815c
 	indx_clear(&sbi->reparse.index_r);
Kmods SIG 8b815c
 	indx_clear(&sbi->objid.index_o);
Kmods SIG 8b815c
-	ntfs_free(sbi->compress.lznt);
Kmods SIG 8b815c
+	kfree(sbi->compress.lznt);
Kmods SIG 8b815c
 #ifdef CONFIG_NTFS3_LZX_XPRESS
Kmods SIG 8b815c
 	xpress_free_decompressor(sbi->compress.xpress);
Kmods SIG 8b815c
 	lzx_free_decompressor(sbi->compress.lzx);
Kmods SIG 8b815c
 #endif
Kmods SIG 8b815c
 	clear_mount_options(&sbi->options);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	ntfs_free(sbi);
Kmods SIG 8b815c
+	kfree(sbi);
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 static void ntfs_put_super(struct super_block *sb)
Kmods SIG 8b815c
@@ -848,7 +848,7 @@ static int ntfs_init_from_boot(struct super_block *sb, u32 sector_size,
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	sbi->used.bitmap.nbits = clusters;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	rec = ntfs_zalloc(record_size);
Kmods SIG 8b815c
+	rec = kzalloc(record_size, GFP_NOFS);
Kmods SIG 8b815c
 	if (!rec) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -915,7 +915,7 @@ static int ntfs_fill_super(struct super_block *sb, void *data, int silent)
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	ref.high = 0;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	sbi = ntfs_zalloc(sizeof(struct ntfs_sb_info));
Kmods SIG 8b815c
+	sbi = kzalloc(sizeof(struct ntfs_sb_info), GFP_NOFS);
Kmods SIG 8b815c
 	if (!sbi)
Kmods SIG 8b815c
 		return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -1181,7 +1181,7 @@ static int ntfs_fill_super(struct super_block *sb, void *data, int silent)
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 	bytes = inode->i_size;
Kmods SIG 8b815c
-	sbi->def_table = t = ntfs_malloc(bytes);
Kmods SIG 8b815c
+	sbi->def_table = t = kmalloc(bytes, GFP_NOFS);
Kmods SIG 8b815c
 	if (!t) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -1247,7 +1247,7 @@ static int ntfs_fill_super(struct super_block *sb, void *data, int silent)
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-	sbi->upcase = upcase = ntfs_vmalloc(0x10000 * sizeof(short));
Kmods SIG 8b815c
+	sbi->upcase = upcase = kvmalloc(0x10000 * sizeof(short), GFP_KERNEL);
Kmods SIG 8b815c
 	if (!upcase) {
Kmods SIG 8b815c
 		err = -ENOMEM;
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
@@ -1277,7 +1277,7 @@ static int ntfs_fill_super(struct super_block *sb, void *data, int silent)
Kmods SIG 8b815c
 	shared = ntfs_set_shared(upcase, 0x10000 * sizeof(short));
Kmods SIG 8b815c
 	if (shared && upcase != shared) {
Kmods SIG 8b815c
 		sbi->upcase = shared;
Kmods SIG 8b815c
-		ntfs_vfree(upcase);
Kmods SIG 8b815c
+		kvfree(upcase);
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	iput(inode);
Kmods SIG 8b815c
diff --git a/src/xattr.c b/src/xattr.c
Kmods SIG 8b815c
index 6b17d46b9506ccaa6a6a06dfaf4dde00524186e2..af89e50f7b9f32926e4daaea9f8b729916519526 100644
Kmods SIG 8b815c
--- a/src/xattr.c
Kmods SIG 8b815c
+++ b/src/xattr.c
Kmods SIG 8b815c
@@ -110,7 +110,7 @@ static int ntfs_read_ea(struct ntfs_inode *ni, struct EA_FULL **ea,
Kmods SIG 8b815c
 		return -EFBIG;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	/* Allocate memory for packed Ea */
Kmods SIG 8b815c
-	ea_p = ntfs_malloc(size + add_bytes);
Kmods SIG 8b815c
+	ea_p = kmalloc(size + add_bytes, GFP_NOFS);
Kmods SIG 8b815c
 	if (!ea_p)
Kmods SIG 8b815c
 		return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -142,7 +142,7 @@ static int ntfs_read_ea(struct ntfs_inode *ni, struct EA_FULL **ea,
Kmods SIG 8b815c
 	return 0;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(ea_p);
Kmods SIG 8b815c
+	kfree(ea_p);
Kmods SIG 8b815c
 	*ea = NULL;
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
@@ -193,7 +193,7 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer,
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(ea_all);
Kmods SIG 8b815c
+	kfree(ea_all);
Kmods SIG 8b815c
 	return err ? err : ret;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -251,7 +251,7 @@ static int ntfs_get_ea(struct inode *inode, const char *name, size_t name_len,
Kmods SIG 8b815c
 	err = 0;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(ea_all);
Kmods SIG 8b815c
+	kfree(ea_all);
Kmods SIG 8b815c
 	if (!required)
Kmods SIG 8b815c
 		ni_unlock(ni);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -352,7 +352,7 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name,
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		if (!ea_all) {
Kmods SIG 8b815c
-			ea_all = ntfs_zalloc(add);
Kmods SIG 8b815c
+			ea_all = kzalloc(add, GFP_NOFS);
Kmods SIG 8b815c
 			if (!ea_all) {
Kmods SIG 8b815c
 				err = -ENOMEM;
Kmods SIG 8b815c
 				goto out;
Kmods SIG 8b815c
@@ -474,7 +474,7 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name,
Kmods SIG 8b815c
 		ni_unlock(ni);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	run_close(&ea_run);
Kmods SIG 8b815c
-	ntfs_free(ea_all);
Kmods SIG 8b815c
+	kfree(ea_all);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
@@ -599,7 +599,7 @@ static noinline int ntfs_set_acl_ex(struct user_namespace *mnt_userns,
Kmods SIG 8b815c
 		value = NULL;
Kmods SIG 8b815c
 	} else {
Kmods SIG 8b815c
 		size = posix_acl_xattr_size(acl->a_count);
Kmods SIG 8b815c
-		value = ntfs_malloc(size);
Kmods SIG 8b815c
+		value = kmalloc(size, GFP_NOFS);
Kmods SIG 8b815c
 		if (!value)
Kmods SIG 8b815c
 			return -ENOMEM;
Kmods SIG 8b815c
 
Kmods SIG 8b815c
@@ -614,7 +614,7 @@ static noinline int ntfs_set_acl_ex(struct user_namespace *mnt_userns,
Kmods SIG 8b815c
 		set_cached_acl(inode, type, acl);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 out:
Kmods SIG 8b815c
-	ntfs_free(value);
Kmods SIG 8b815c
+	kfree(value);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 	return err;
Kmods SIG 8b815c
 }
Kmods SIG 8b815c
@@ -880,7 +880,7 @@ static int ntfs_getxattr(const struct xattr_handler *handler, struct dentry *de,
Kmods SIG 8b815c
 			err = sd_size;
Kmods SIG 8b815c
 			memcpy(buffer, sd, sd_size);
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
-		ntfs_free(sd);
Kmods SIG 8b815c
+		kfree(sd);
Kmods SIG 8b815c
 		goto out;
Kmods SIG 8b815c
 	}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-- 
Kmods SIG 8b815c
2.31.1
Kmods SIG 8b815c