From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Wed, 21 Jul 2010 10:24:45 +0100 Subject: [Cluster-devel] [patch 4/6] gfs2: remove dependency on __GFP_NOFAIL In-Reply-To: References: Message-ID: <1279704285.2667.2.camel@localhost> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, Looks good to me, I've added it to the -nmw tree. There are a few more GFP_NOFAIL instances in the code that we can probably remove in the future, but these two are pretty easy. Thanks for the patch, Steve. On Tue, 2010-07-20 at 19:45 -0700, David Rientjes wrote: > The k[mc]allocs in dr_split_leaf() and dir_double_exhash() are failable, > so remove __GFP_NOFAIL from their masks. > > Cc: Bob Peterson > Signed-off-by: David Rientjes > --- > fs/gfs2/dir.c | 11 +++++++++-- > 1 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c > --- a/fs/gfs2/dir.c > +++ b/fs/gfs2/dir.c > @@ -955,7 +955,12 @@ static int dir_split_leaf(struct inode *inode, const struct qstr *name) > /* Change the pointers. > Don't bother distinguishing stuffed from non-stuffed. > This code is complicated enough already. */ > - lp = kmalloc(half_len * sizeof(__be64), GFP_NOFS | __GFP_NOFAIL); > + lp = kmalloc(half_len * sizeof(__be64), GFP_NOFS); > + if (!lp) { > + error = -ENOMEM; > + goto fail_brelse; > + } > + > /* Change the pointers */ > for (x = 0; x < half_len; x++) > lp[x] = cpu_to_be64(bn); > @@ -1063,7 +1068,9 @@ static int dir_double_exhash(struct gfs2_inode *dip) > > /* Allocate both the "from" and "to" buffers in one big chunk */ > > - buf = kcalloc(3, sdp->sd_hash_bsize, GFP_NOFS | __GFP_NOFAIL); > + buf = kcalloc(3, sdp->sd_hash_bsize, GFP_NOFS); > + if (!buf) > + return -ENOMEM; > > for (block = dip->i_disksize >> sdp->sd_hash_bsize_shift; block--;) { > error = gfs2_dir_read_data(dip, (char *)buf,