mtd: nand: nandsim: convert to memalloc_noreclaim_*()
Nandsim has own functions set_memalloc() and clear_memalloc() for robust setting and clearing of PF_MEMALLOC. Replace them by the new generic helpers. No functional change. Link: http://lkml.kernel.org/r/20170405074700.29871-5-vbabka@suse.cz Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Cc: Boris Brezillon <boris.brezillon@free-electrons.com> Cc: Richard Weinberger <richard@nod.at> Cc: Michal Hocko <mhocko@kernel.org> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Chris Leech <cleech@redhat.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Eric Dumazet <edumazet@google.com> Cc: Josef Bacik <jbacik@fb.com> Cc: Lee Duncan <lduncan@suse.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f108304872
commit
dcbe82149c
|
@ -40,6 +40,7 @@
|
|||
#include <linux/list.h>
|
||||
#include <linux/random.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/sched/mm.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/seq_file.h>
|
||||
|
@ -1368,31 +1369,18 @@ static int get_pages(struct nandsim *ns, struct file *file, size_t count, loff_t
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int set_memalloc(void)
|
||||
{
|
||||
if (current->flags & PF_MEMALLOC)
|
||||
return 0;
|
||||
current->flags |= PF_MEMALLOC;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void clear_memalloc(int memalloc)
|
||||
{
|
||||
if (memalloc)
|
||||
current->flags &= ~PF_MEMALLOC;
|
||||
}
|
||||
|
||||
static ssize_t read_file(struct nandsim *ns, struct file *file, void *buf, size_t count, loff_t pos)
|
||||
{
|
||||
ssize_t tx;
|
||||
int err, memalloc;
|
||||
int err;
|
||||
unsigned int noreclaim_flag;
|
||||
|
||||
err = get_pages(ns, file, count, pos);
|
||||
if (err)
|
||||
return err;
|
||||
memalloc = set_memalloc();
|
||||
noreclaim_flag = memalloc_noreclaim_save();
|
||||
tx = kernel_read(file, pos, buf, count);
|
||||
clear_memalloc(memalloc);
|
||||
memalloc_noreclaim_restore(noreclaim_flag);
|
||||
put_pages(ns);
|
||||
return tx;
|
||||
}
|
||||
|
@ -1400,14 +1388,15 @@ static ssize_t read_file(struct nandsim *ns, struct file *file, void *buf, size_
|
|||
static ssize_t write_file(struct nandsim *ns, struct file *file, void *buf, size_t count, loff_t pos)
|
||||
{
|
||||
ssize_t tx;
|
||||
int err, memalloc;
|
||||
int err;
|
||||
unsigned int noreclaim_flag;
|
||||
|
||||
err = get_pages(ns, file, count, pos);
|
||||
if (err)
|
||||
return err;
|
||||
memalloc = set_memalloc();
|
||||
noreclaim_flag = memalloc_noreclaim_save();
|
||||
tx = kernel_write(file, buf, count, pos);
|
||||
clear_memalloc(memalloc);
|
||||
memalloc_noreclaim_restore(noreclaim_flag);
|
||||
put_pages(ns);
|
||||
return tx;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue