Hi,

On 03/11/15 17:29, Bob Peterson wrote:
----- Original Message -----
When gfs2 allocates an inode and its extended attribute block next to
each other at inode create time, the inode's directory entry indicates
that in de_rahead.  In that case, we can readahead the extended
attribute block when we read in the inode.

Signed-off-by: Andreas Gruenbacher <agrue...@redhat.com>
---
  fs/gfs2/dir.c     | 15 +++++++++++----
  fs/gfs2/incore.h  |  1 +
  fs/gfs2/meta_io.c | 27 +++++++++++++++++++++++++--
  fs/gfs2/meta_io.h |  2 +-
  fs/gfs2/quota.c   |  2 +-
  fs/gfs2/rgrp.c    |  2 +-
  fs/gfs2/super.c   |  1 +
  fs/gfs2/xattr.c   | 10 +++++-----
  8 files changed, 46 insertions(+), 14 deletions(-)

Hi Andreas,

Most of this looks good. However, two comments:

1. I don't like adding a new u16 to the gfs2_inode. I've been working to
    reduce the size of gfs2's inodes lately, so I'd rather see this
    implemented as a new GIF_RAHEAD (or similar) flag in gfs2_inode's i_flags.
2. It seems to me like we should take advantage of function gfs2_meta_ra()
    which already submits one block and a variable number of additional
    blocks for read-ahead, then waits for the first block IO to complete.
The meta_ra thing is a bit of a hack, and best avoided for this use. We want to only send out a single I/O here rather than let the I/O stack do the merging after the fact,

Steve.

Regards,

Bob Peterson
Red Hat File Systems

Reply via email to