Skip to content

Commit

Permalink
mm: page_alloc: remove GFP_IOFS
Browse files Browse the repository at this point in the history
GFP_IOFS was intended to be shorthand for clearing two flags, not a set of
allocation flags.  There is only one user of this flag combination now and
there appears to be no reason why Lustre had to be protected from reclaim
stalls.  As none of the sites appear to be atomic, this patch simply
deletes GFP_IOFS and converts Lustre to using GFP_KERNEL, GFP_NOFS or
GFP_NOIO as appropriate.

Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
Cc: Oleg Drokin <oleg.drokin@intel.com>
Cc: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Mel Gorman authored and Linus Torvalds committed Nov 7, 2015
1 parent d0164ad commit 4011337
Show file tree
Hide file tree
Showing 10 changed files with 12 additions and 13 deletions.
2 changes: 1 addition & 1 deletion drivers/staging/lustre/lnet/lnet/router.c
Original file line number Diff line number Diff line change
Expand Up @@ -1245,7 +1245,7 @@ lnet_new_rtrbuf(lnet_rtrbufpool_t *rbp, int cpt)
for (i = 0; i < npages; i++) {
page = alloc_pages_node(
cfs_cpt_spread_node(lnet_cpt_table(), cpt),
__GFP_ZERO | GFP_IOFS, 0);
GFP_KERNEL | __GFP_ZERO, 0);
if (page == NULL) {
while (--i >= 0)
__free_page(rb->rb_kiov[i].kiov_page);
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/lustre/lnet/selftest/conrpc.c
Original file line number Diff line number Diff line change
Expand Up @@ -860,7 +860,7 @@ lstcon_testrpc_prep(lstcon_node_t *nd, int transop, unsigned feats,
bulk->bk_iovs[i].kiov_offset = 0;
bulk->bk_iovs[i].kiov_len = len;
bulk->bk_iovs[i].kiov_page =
alloc_page(GFP_IOFS);
alloc_page(GFP_KERNEL);

if (bulk->bk_iovs[i].kiov_page == NULL) {
lstcon_rpc_put(*crpc);
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/lustre/lnet/selftest/rpc.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ srpc_alloc_bulk(int cpt, unsigned bulk_npg, unsigned bulk_len, int sink)
int nob;

pg = alloc_pages_node(cfs_cpt_spread_node(lnet_cpt_table(), cpt),
GFP_IOFS, 0);
GFP_KERNEL, 0);
if (pg == NULL) {
CERROR("Can't allocate page %d of %d\n", i, bulk_npg);
srpc_free_bulk(bk);
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/lustre/lustre/libcfs/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ static int libcfs_ioctl(struct cfs_psdev_file *pfile, unsigned long cmd, void *a
struct libcfs_ioctl_data *data;
int err = 0;

LIBCFS_ALLOC_GFP(buf, 1024, GFP_IOFS);
LIBCFS_ALLOC_GFP(buf, 1024, GFP_KERNEL);
if (buf == NULL)
return -ENOMEM;

Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/lustre/lustre/libcfs/tracefile.c
Original file line number Diff line number Diff line change
Expand Up @@ -810,7 +810,7 @@ int cfs_trace_allocate_string_buffer(char **str, int nob)
if (nob > 2 * PAGE_CACHE_SIZE) /* string must be "sensible" */
return -EINVAL;

*str = kmalloc(nob, GFP_IOFS | __GFP_ZERO);
*str = kmalloc(nob, GFP_KERNEL | __GFP_ZERO);
if (*str == NULL)
return -ENOMEM;

Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/lustre/lustre/llite/remote_perm.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ static struct hlist_head *alloc_rmtperm_hash(void)
struct hlist_head *hash;
int i;

hash = kmem_cache_alloc(ll_rmtperm_hash_cachep, GFP_IOFS | __GFP_ZERO);
hash = kmem_cache_alloc(ll_rmtperm_hash_cachep, GFP_NOFS | __GFP_ZERO);
if (!hash)
return NULL;

Expand Down
8 changes: 4 additions & 4 deletions drivers/staging/lustre/lustre/mgc/mgc_request.c
Original file line number Diff line number Diff line change
Expand Up @@ -1112,7 +1112,7 @@ static int mgc_apply_recover_logs(struct obd_device *mgc,
LASSERT(cfg->cfg_instance != NULL);
LASSERT(cfg->cfg_sb == cfg->cfg_instance);

inst = kzalloc(PAGE_CACHE_SIZE, GFP_NOFS);
inst = kzalloc(PAGE_CACHE_SIZE, GFP_KERNEL);
if (!inst)
return -ENOMEM;

Expand Down Expand Up @@ -1308,14 +1308,14 @@ static int mgc_process_recover_log(struct obd_device *obd,
if (cfg->cfg_last_idx == 0) /* the first time */
nrpages = CONFIG_READ_NRPAGES_INIT;

pages = kcalloc(nrpages, sizeof(*pages), GFP_NOFS);
pages = kcalloc(nrpages, sizeof(*pages), GFP_KERNEL);
if (pages == NULL) {
rc = -ENOMEM;
goto out;
}

for (i = 0; i < nrpages; i++) {
pages[i] = alloc_page(GFP_IOFS);
pages[i] = alloc_page(GFP_KERNEL);
if (pages[i] == NULL) {
rc = -ENOMEM;
goto out;
Expand Down Expand Up @@ -1466,7 +1466,7 @@ static int mgc_process_cfg_log(struct obd_device *mgc,
if (cld->cld_cfg.cfg_sb)
lsi = s2lsi(cld->cld_cfg.cfg_sb);

env = kzalloc(sizeof(*env), GFP_NOFS);
env = kzalloc(sizeof(*env), GFP_KERNEL);
if (!env)
return -ENOMEM;

Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/lustre/lustre/obdecho/echo_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -1562,7 +1562,7 @@ static int echo_client_kbrw(struct echo_device *ed, int rw, struct obdo *oa,
(oa->o_valid & OBD_MD_FLFLAGS) != 0 &&
(oa->o_flags & OBD_FL_DEBUG_CHECK) != 0);

gfp_mask = ((ostid_id(&oa->o_oi) & 2) == 0) ? GFP_IOFS : GFP_HIGHUSER;
gfp_mask = ((ostid_id(&oa->o_oi) & 2) == 0) ? GFP_KERNEL : GFP_HIGHUSER;

LASSERT(rw == OBD_BRW_WRITE || rw == OBD_BRW_READ);
LASSERT(lsm != NULL);
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/lustre/lustre/osc/osc_cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ static struct osc_extent *osc_extent_alloc(struct osc_object *obj)
{
struct osc_extent *ext;

ext = kmem_cache_alloc(osc_extent_kmem, GFP_IOFS | __GFP_ZERO);
ext = kmem_cache_alloc(osc_extent_kmem, GFP_NOFS | __GFP_ZERO);
if (ext == NULL)
return NULL;

Expand Down
1 change: 0 additions & 1 deletion include/linux/gfp.h
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,6 @@ struct vm_area_struct;
#define GFP_USER (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_HARDWALL)
#define GFP_HIGHUSER (GFP_USER | __GFP_HIGHMEM)
#define GFP_HIGHUSER_MOVABLE (GFP_HIGHUSER | __GFP_MOVABLE)
#define GFP_IOFS (__GFP_IO | __GFP_FS | __GFP_KSWAPD_RECLAIM)
#define GFP_TRANSHUGE ((GFP_HIGHUSER_MOVABLE | __GFP_COMP | \
__GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN) & \
~__GFP_KSWAPD_RECLAIM)
Expand Down

0 comments on commit 4011337

Please sign in to comment.