Commit d50a64e3 authored by Andreas Gruenbacher's avatar Andreas Gruenbacher
Browse files

gfs2: Move gfs2_trans_add_databufs



Move gfs2_trans_add_databufs() to trans.c.  Pass in a glock instead of
a gfs2_inode.

Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
parent 2f022736
Loading
Loading
Loading
Loading
+1 −22
Original line number Diff line number Diff line
@@ -37,27 +37,6 @@
#include "aops.h"


void gfs2_trans_add_databufs(struct gfs2_inode *ip, struct folio *folio,
			     size_t from, size_t len)
{
	struct buffer_head *head = folio_buffers(folio);
	unsigned int bsize = head->b_size;
	struct buffer_head *bh;
	size_t to = from + len;
	size_t start, end;

	for (bh = head, start = 0; bh != head || !start;
	     bh = bh->b_this_page, start = end) {
		end = start + bsize;
		if (end <= from)
			continue;
		if (start >= to)
			break;
		set_buffer_uptodate(bh);
		gfs2_trans_add_data(ip->i_gl, bh);
	}
}

/**
 * gfs2_get_block_noalloc - Fills in a buffer head with details about a block
 * @inode: The inode
@@ -133,7 +112,7 @@ static int __gfs2_jdata_write_folio(struct folio *folio,
					inode->i_sb->s_blocksize,
					BIT(BH_Dirty)|BIT(BH_Uptodate));
		}
		gfs2_trans_add_databufs(ip, folio, 0, folio_size(folio));
		gfs2_trans_add_databufs(ip->i_gl, folio, 0, folio_size(folio));
	}
	return gfs2_write_jdata_folio(folio, wbc);
}
+0 −2
Original line number Diff line number Diff line
@@ -9,7 +9,5 @@
#include "incore.h"

void adjust_fs_space(struct inode *inode);
void gfs2_trans_add_databufs(struct gfs2_inode *ip, struct folio *folio,
			     size_t from, size_t len);

#endif /* __AOPS_DOT_H__ */
+2 −1
Original line number Diff line number Diff line
@@ -988,7 +988,8 @@ static void gfs2_iomap_put_folio(struct inode *inode, loff_t pos,
	struct gfs2_sbd *sdp = GFS2_SB(inode);

	if (!gfs2_is_stuffed(ip))
		gfs2_trans_add_databufs(ip, folio, offset_in_folio(folio, pos),
		gfs2_trans_add_databufs(ip->i_gl, folio,
					offset_in_folio(folio, pos),
					copied);

	folio_unlock(folio);
+21 −0
Original line number Diff line number Diff line
@@ -226,6 +226,27 @@ void gfs2_trans_add_data(struct gfs2_glock *gl, struct buffer_head *bh)
	unlock_buffer(bh);
}

void gfs2_trans_add_databufs(struct gfs2_glock *gl, struct folio *folio,
			     size_t from, size_t len)
{
	struct buffer_head *head = folio_buffers(folio);
	unsigned int bsize = head->b_size;
	struct buffer_head *bh;
	size_t to = from + len;
	size_t start, end;

	for (bh = head, start = 0; bh != head || !start;
	     bh = bh->b_this_page, start = end) {
		end = start + bsize;
		if (end <= from)
			continue;
		if (start >= to)
			break;
		set_buffer_uptodate(bh);
		gfs2_trans_add_data(gl, bh);
	}
}

void gfs2_trans_add_meta(struct gfs2_glock *gl, struct buffer_head *bh)
{

+2 −0
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks,

void gfs2_trans_end(struct gfs2_sbd *sdp);
void gfs2_trans_add_data(struct gfs2_glock *gl, struct buffer_head *bh);
void gfs2_trans_add_databufs(struct gfs2_glock *gl, struct folio *folio,
			     size_t from, size_t len);
void gfs2_trans_add_meta(struct gfs2_glock *gl, struct buffer_head *bh);
void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd);
void gfs2_trans_remove_revoke(struct gfs2_sbd *sdp, u64 blkno, unsigned int len);