diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2008-11-03 08:59:19 -0500 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2009-01-05 02:38:56 -0500 |
commit | ad6203f2b46c2217f74b2e88299640eef5889e72 (patch) | |
tree | 24197a5bc7ffac80071d2375ff46947cabe9b365 /fs/gfs2/dir.c | |
parent | bcf0b5b348a1f49c2c878ffdb78e68c930baabb8 (diff) |
GFS2: Move "entries" into "proper" inode
This moves the directory entry count into the proper inode.
Potentially we could get this to share the space used by
something else in the future, but this is one more step
on the way to removing the gfs2_dinode_host structure.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/dir.c')
-rw-r--r-- | fs/gfs2/dir.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c index eed040d8ba3a..830cf48184e3 100644 --- a/fs/gfs2/dir.c +++ b/fs/gfs2/dir.c | |||
@@ -858,8 +858,8 @@ static int dir_make_exhash(struct inode *inode) | |||
858 | return -ENOSPC; | 858 | return -ENOSPC; |
859 | bn = bh->b_blocknr; | 859 | bn = bh->b_blocknr; |
860 | 860 | ||
861 | gfs2_assert(sdp, dip->i_di.di_entries < (1 << 16)); | 861 | gfs2_assert(sdp, dip->i_entries < (1 << 16)); |
862 | leaf->lf_entries = cpu_to_be16(dip->i_di.di_entries); | 862 | leaf->lf_entries = cpu_to_be16(dip->i_entries); |
863 | 863 | ||
864 | /* Copy dirents */ | 864 | /* Copy dirents */ |
865 | 865 | ||
@@ -1426,7 +1426,7 @@ int gfs2_dir_read(struct inode *inode, u64 *offset, void *opaque, | |||
1426 | int copied = 0; | 1426 | int copied = 0; |
1427 | int error; | 1427 | int error; |
1428 | 1428 | ||
1429 | if (!dip->i_di.di_entries) | 1429 | if (!dip->i_entries) |
1430 | return 0; | 1430 | return 0; |
1431 | 1431 | ||
1432 | if (dip->i_di.di_flags & GFS2_DIF_EXHASH) | 1432 | if (dip->i_di.di_flags & GFS2_DIF_EXHASH) |
@@ -1453,17 +1453,17 @@ int gfs2_dir_read(struct inode *inode, u64 *offset, void *opaque, | |||
1453 | error = PTR_ERR(dent); | 1453 | error = PTR_ERR(dent); |
1454 | goto out; | 1454 | goto out; |
1455 | } | 1455 | } |
1456 | if (dip->i_di.di_entries != g.offset) { | 1456 | if (dip->i_entries != g.offset) { |
1457 | fs_warn(sdp, "Number of entries corrupt in dir %llu, " | 1457 | fs_warn(sdp, "Number of entries corrupt in dir %llu, " |
1458 | "ip->i_di.di_entries (%u) != g.offset (%u)\n", | 1458 | "ip->i_entries (%u) != g.offset (%u)\n", |
1459 | (unsigned long long)dip->i_no_addr, | 1459 | (unsigned long long)dip->i_no_addr, |
1460 | dip->i_di.di_entries, | 1460 | dip->i_entries, |
1461 | g.offset); | 1461 | g.offset); |
1462 | error = -EIO; | 1462 | error = -EIO; |
1463 | goto out; | 1463 | goto out; |
1464 | } | 1464 | } |
1465 | error = do_filldir_main(dip, offset, opaque, filldir, darr, | 1465 | error = do_filldir_main(dip, offset, opaque, filldir, darr, |
1466 | dip->i_di.di_entries, &copied); | 1466 | dip->i_entries, &copied); |
1467 | out: | 1467 | out: |
1468 | kfree(darr); | 1468 | kfree(darr); |
1469 | } | 1469 | } |
@@ -1621,7 +1621,7 @@ int gfs2_dir_add(struct inode *inode, const struct qstr *name, | |||
1621 | if (error) | 1621 | if (error) |
1622 | break; | 1622 | break; |
1623 | gfs2_trans_add_bh(ip->i_gl, bh, 1); | 1623 | gfs2_trans_add_bh(ip->i_gl, bh, 1); |
1624 | ip->i_di.di_entries++; | 1624 | ip->i_entries++; |
1625 | ip->i_inode.i_mtime = ip->i_inode.i_ctime = CURRENT_TIME; | 1625 | ip->i_inode.i_mtime = ip->i_inode.i_ctime = CURRENT_TIME; |
1626 | gfs2_dinode_out(ip, bh->b_data); | 1626 | gfs2_dinode_out(ip, bh->b_data); |
1627 | brelse(bh); | 1627 | brelse(bh); |
@@ -1704,10 +1704,10 @@ int gfs2_dir_del(struct gfs2_inode *dip, const struct qstr *name) | |||
1704 | if (error) | 1704 | if (error) |
1705 | return error; | 1705 | return error; |
1706 | 1706 | ||
1707 | if (!dip->i_di.di_entries) | 1707 | if (!dip->i_entries) |
1708 | gfs2_consist_inode(dip); | 1708 | gfs2_consist_inode(dip); |
1709 | gfs2_trans_add_bh(dip->i_gl, bh, 1); | 1709 | gfs2_trans_add_bh(dip->i_gl, bh, 1); |
1710 | dip->i_di.di_entries--; | 1710 | dip->i_entries--; |
1711 | dip->i_inode.i_mtime = dip->i_inode.i_ctime = CURRENT_TIME; | 1711 | dip->i_inode.i_mtime = dip->i_inode.i_ctime = CURRENT_TIME; |
1712 | gfs2_dinode_out(dip, bh->b_data); | 1712 | gfs2_dinode_out(dip, bh->b_data); |
1713 | brelse(bh); | 1713 | brelse(bh); |