Hi,

This patch speeds up fsck.gfs2 by issuing read-ahead for each of the
dinodes found in each of the bitmaps, prior to processing the bitmap.

Regards,

Bob Peterson
Red Hat File Systems

Signed-off-by: Bob Peterson <[email protected]> 
---
 gfs2/fsck/pass1.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gfs2/fsck/pass1.c b/gfs2/fsck/pass1.c
index fec2f64..90ca357 100644
--- a/gfs2/fsck/pass1.c
+++ b/gfs2/fsck/pass1.c
@@ -1442,6 +1442,10 @@ static int pass1_process_bitmap(struct gfs2_sbd *sdp, 
struct rgrp_tree *rgd, uin
        struct gfs2_inode *ip;
        uint8_t q;
 
+       /* Issue read-ahead for all dinodes in this bitmap */
+       for (i = 0; i < n; i++)
+               posix_fadvise(sdp->device_fd, ibuf[i] * sdp->bsize, sdp->bsize,
+                             POSIX_FADV_WILLNEED);
        for (i = 0; i < n; i++) {
                int is_inode;
                uint32_t check_magic;

Reply via email to