aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/gfs2/dir.c')
-rw-r--r--fs/gfs2/dir.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c
index fa32655449c8..ffcfdd18d485 100644
--- a/fs/gfs2/dir.c
+++ b/fs/gfs2/dir.c
@@ -1684,6 +1684,14 @@ static int dir_new_leaf(struct inode *inode, const struct qstr *name)
1684 return 0; 1684 return 0;
1685} 1685}
1686 1686
1687static u16 gfs2_inode_ra_len(const struct gfs2_inode *ip)
1688{
1689 u64 where = ip->i_no_addr + 1;
1690 if (ip->i_eattr == where)
1691 return 1;
1692 return 0;
1693}
1694
1687/** 1695/**
1688 * gfs2_dir_add - Add new filename into directory 1696 * gfs2_dir_add - Add new filename into directory
1689 * @inode: The directory inode 1697 * @inode: The directory inode
@@ -1721,6 +1729,7 @@ int gfs2_dir_add(struct inode *inode, const struct qstr *name,
1721 dent = gfs2_init_dirent(inode, dent, name, bh); 1729 dent = gfs2_init_dirent(inode, dent, name, bh);
1722 gfs2_inum_out(nip, dent); 1730 gfs2_inum_out(nip, dent);
1723 dent->de_type = cpu_to_be16(IF2DT(nip->i_inode.i_mode)); 1731 dent->de_type = cpu_to_be16(IF2DT(nip->i_inode.i_mode));
1732 dent->de_rahead = cpu_to_be16(gfs2_inode_ra_len(nip));
1724 tv = CURRENT_TIME; 1733 tv = CURRENT_TIME;
1725 if (ip->i_diskflags & GFS2_DIF_EXHASH) { 1734 if (ip->i_diskflags & GFS2_DIF_EXHASH) {
1726 leaf = (struct gfs2_leaf *)bh->b_data; 1735 leaf = (struct gfs2_leaf *)bh->b_data;