Commit 4c7b3f7f authored by Andreas Gruenbacher's avatar Andreas Gruenbacher
Browse files

gfs2: Get rid of gfs2_alloc_blocks generation parameter



Get rid of the generation parameter of gfs2_alloc_blocks(): we only ever
set the generation of the current inode while creating it, so do so
directly.

Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
parent 92099f0c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -106,7 +106,7 @@ static int __gfs2_unstuff_inode(struct gfs2_inode *ip, struct page *page)
		   and write it out to disk */

		unsigned int n = 1;
		error = gfs2_alloc_blocks(ip, &block, &n, 0, NULL);
		error = gfs2_alloc_blocks(ip, &block, &n, 0);
		if (error)
			goto out_brelse;
		if (isdir) {
@@ -707,7 +707,7 @@ static int __gfs2_iomap_alloc(struct inode *inode, struct iomap *iomap,
	i = mp->mp_aheight;
	do {
		n = blks - alloced;
		ret = gfs2_alloc_blocks(ip, &bn, &n, 0, NULL);
		ret = gfs2_alloc_blocks(ip, &bn, &n, 0);
		if (ret)
			goto out;
		alloced += n;
+1 −1
Original line number Diff line number Diff line
@@ -868,7 +868,7 @@ static struct gfs2_leaf *new_leaf(struct inode *inode, struct buffer_head **pbh,
	struct gfs2_dirent *dent;
	struct timespec64 tv = current_time(inode);

	error = gfs2_alloc_blocks(ip, &bn, &n, 0, NULL);
	error = gfs2_alloc_blocks(ip, &bn, &n, 0);
	if (error)
		return NULL;
	bh = gfs2_meta_new(ip->i_gl, bn);
+1 −1
Original line number Diff line number Diff line
@@ -417,7 +417,7 @@ static int alloc_dinode(struct gfs2_inode *ip, u32 flags, unsigned *dblocks)
	if (error)
		goto out_ipreserv;

	error = gfs2_alloc_blocks(ip, &ip->i_no_addr, dblocks, 1, &ip->i_generation);
	error = gfs2_alloc_blocks(ip, &ip->i_no_addr, dblocks, 1);
	if (error)
		goto out_trans_end;

+7 −5
Original line number Diff line number Diff line
@@ -2411,13 +2411,12 @@ static void gfs2_set_alloc_start(struct gfs2_rbm *rbm,
 * @bn: Used to return the starting block number
 * @nblocks: requested number of blocks/extent length (value/result)
 * @dinode: 1 if we're allocating a dinode block, else 0
 * @generation: the generation number of the inode
 *
 * Returns: 0 or error
 */

int gfs2_alloc_blocks(struct gfs2_inode *ip, u64 *bn, unsigned int *nblocks,
		      bool dinode, u64 *generation)
		      bool dinode)
{
	struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
	struct buffer_head *dibh;
@@ -2477,10 +2476,13 @@ int gfs2_alloc_blocks(struct gfs2_inode *ip, u64 *bn, unsigned int *nblocks,
	rbm.rgd->rd_free -= *nblocks;
	spin_unlock(&rbm.rgd->rd_rsspin);
	if (dinode) {
		u64 generation;

		rbm.rgd->rd_dinodes++;
		*generation = rbm.rgd->rd_igeneration++;
		if (*generation == 0)
			*generation = rbm.rgd->rd_igeneration++;
		generation = rbm.rgd->rd_igeneration++;
		if (generation == 0)
			generation = rbm.rgd->rd_igeneration++;
		ip->i_generation = generation;
	}

	gfs2_trans_add_meta(rbm.rgd->rd_gl, rbm.rgd->rd_bits[0].bi_bh);
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ extern int gfs2_inplace_reserve(struct gfs2_inode *ip,
extern void gfs2_inplace_release(struct gfs2_inode *ip);

extern int gfs2_alloc_blocks(struct gfs2_inode *ip, u64 *bn, unsigned int *n,
			     bool dinode, u64 *generation);
			     bool dinode);

extern void gfs2_rs_deltree(struct gfs2_blkreserv *rs);
extern void gfs2_rs_delete(struct gfs2_inode *ip);
Loading