gfs2: Move gfs2_trans_add_databufs
[ Upstream commit d50a64e3c55e59e45e415c65531b0d76ad4cea36 ] Move gfs2_trans_add_databufs() to trans.c. Pass in a glock instead of a gfs2_inode. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Stable-dep-of: 5a90f8d49922 ("gfs2: Don't start unnecessary transactions during log flush") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a2562bdd35
commit
519aed5bda
+1
-22
@@ -37,27 +37,6 @@
|
|||||||
#include "aops.h"
|
#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
|
* gfs2_get_block_noalloc - Fills in a buffer head with details about a block
|
||||||
* @inode: The inode
|
* @inode: The inode
|
||||||
@@ -133,7 +112,7 @@ static int __gfs2_jdata_write_folio(struct folio *folio,
|
|||||||
inode->i_sb->s_blocksize,
|
inode->i_sb->s_blocksize,
|
||||||
BIT(BH_Dirty)|BIT(BH_Uptodate));
|
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);
|
return gfs2_write_jdata_folio(folio, wbc);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,5 @@
|
|||||||
#include "incore.h"
|
#include "incore.h"
|
||||||
|
|
||||||
void adjust_fs_space(struct inode *inode);
|
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__ */
|
#endif /* __AOPS_DOT_H__ */
|
||||||
|
|||||||
+2
-1
@@ -988,7 +988,8 @@ static void gfs2_iomap_put_folio(struct inode *inode, loff_t pos,
|
|||||||
struct gfs2_sbd *sdp = GFS2_SB(inode);
|
struct gfs2_sbd *sdp = GFS2_SB(inode);
|
||||||
|
|
||||||
if (!gfs2_is_stuffed(ip))
|
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);
|
copied);
|
||||||
|
|
||||||
folio_unlock(folio);
|
folio_unlock(folio);
|
||||||
|
|||||||
@@ -226,6 +226,27 @@ out:
|
|||||||
unlock_buffer(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)
|
void gfs2_trans_add_meta(struct gfs2_glock *gl, struct buffer_head *bh)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -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_end(struct gfs2_sbd *sdp);
|
||||||
void gfs2_trans_add_data(struct gfs2_glock *gl, struct buffer_head *bh);
|
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_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_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd);
|
||||||
void gfs2_trans_remove_revoke(struct gfs2_sbd *sdp, u64 blkno, unsigned int len);
|
void gfs2_trans_remove_revoke(struct gfs2_sbd *sdp, u64 blkno, unsigned int len);
|
||||||
|
|||||||
Reference in New Issue
Block a user