Gitweb: http://git.fedorahosted.org/git/gfs2-utils.git?p=gfs2-utils.git;a=commitdiff... Commit: d9cb12d1372ef5d62ad09509886ad8fcd29a0dd6 Parent: 178f6cabb4a425d456524df71d345302e88af18f Author: Bob Peterson rpeterso@redhat.com AuthorDate: Wed Aug 10 10:33:49 2011 -0500 Committer: Bob Peterson rpeterso@redhat.com CommitterDate: Mon Aug 29 12:54:42 2011 -0500
libgfs2: Use dinode buffer to map gfs1 dinode blocks
When function gfs1_block_map found a block for a stuffed file it wasn't returning the dinode buffer, it was returning the block as a new buffer. The problem is, if changes are made to the block, they will be overwritten by the dinode buffer when that is released. The result is a fixed block that doesn't get fixed. This patch changes the code to return the block properly like gfs2_block_map.
rhbz#675723 --- gfs2/libgfs2/gfs1.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/gfs2/libgfs2/gfs1.c b/gfs2/libgfs2/gfs1.c index d09a8ee..5304b56 100644 --- a/gfs2/libgfs2/gfs1.c +++ b/gfs2/libgfs2/gfs1.c @@ -120,7 +120,10 @@ void gfs1_block_map(struct gfs2_inode *ip, uint64_t lblock, int *new, mh.mh_format = GFS2_FORMAT_IN; gfs2_meta_header_out(&mh, bh); } else { - bh = bread(sdp, *dblock); + if (*dblock == ip->i_di.di_num.no_addr) + bh = ip->i_bh; + else + bh = bread(sdp, *dblock); } }
cluster-commits@lists.fedorahosted.org