diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2007-05-15 10:37:50 -0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2007-07-09 03:22:24 -0400 |
commit | dbb7cae2a36170cd17ffbe286ec0c91a998740ff (patch) | |
tree | 1f4da65b07ac31648fe9b72f2742075486a86008 /fs/gfs2/rgrp.c | |
parent | 41d7db0ab437bc84f8a6e77cccc626ce937605ac (diff) |
[GFS2] Clean up inode number handling
This patch cleans up the inode number handling code. The main difference
is that instead of looking up the inodes using a struct gfs2_inum_host
we now use just the no_addr member of this structure. The tests relating
to no_formal_ino can then be done by the calling code. This has
advantages in that we want to do different things in different code
paths if the no_formal_ino doesn't match. In the NFS patch we want to
return -ESTALE, but in the ->lookup() path, its a bug in the fs if the
no_formal_ino doesn't match and thus we can withdraw in this case.
In order to later fix bz #201012, we need to be able to look up an inode
without knowing no_formal_ino, as the only information that is known to
us is the on-disk location of the inode in question.
This patch will also help us to fix bz #236099 at a later date by
cleaning up a lot of the code in that area.
There are no user visible changes as a result of this patch and there
are no changes to the on-disk format either.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/rgrp.c')
-rw-r--r-- | fs/gfs2/rgrp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c index a62c0f2d26d..30eb428065c 100644 --- a/fs/gfs2/rgrp.c +++ b/fs/gfs2/rgrp.c | |||
@@ -1470,7 +1470,7 @@ void gfs2_unlink_di(struct inode *inode) | |||
1470 | struct gfs2_inode *ip = GFS2_I(inode); | 1470 | struct gfs2_inode *ip = GFS2_I(inode); |
1471 | struct gfs2_sbd *sdp = GFS2_SB(inode); | 1471 | struct gfs2_sbd *sdp = GFS2_SB(inode); |
1472 | struct gfs2_rgrpd *rgd; | 1472 | struct gfs2_rgrpd *rgd; |
1473 | u64 blkno = ip->i_num.no_addr; | 1473 | u64 blkno = ip->i_no_addr; |
1474 | 1474 | ||
1475 | rgd = rgblk_free(sdp, blkno, 1, GFS2_BLKST_UNLINKED); | 1475 | rgd = rgblk_free(sdp, blkno, 1, GFS2_BLKST_UNLINKED); |
1476 | if (!rgd) | 1476 | if (!rgd) |
@@ -1505,9 +1505,9 @@ static void gfs2_free_uninit_di(struct gfs2_rgrpd *rgd, u64 blkno) | |||
1505 | 1505 | ||
1506 | void gfs2_free_di(struct gfs2_rgrpd *rgd, struct gfs2_inode *ip) | 1506 | void gfs2_free_di(struct gfs2_rgrpd *rgd, struct gfs2_inode *ip) |
1507 | { | 1507 | { |
1508 | gfs2_free_uninit_di(rgd, ip->i_num.no_addr); | 1508 | gfs2_free_uninit_di(rgd, ip->i_no_addr); |
1509 | gfs2_quota_change(ip, -1, ip->i_inode.i_uid, ip->i_inode.i_gid); | 1509 | gfs2_quota_change(ip, -1, ip->i_inode.i_uid, ip->i_inode.i_gid); |
1510 | gfs2_meta_wipe(ip, ip->i_num.no_addr, 1); | 1510 | gfs2_meta_wipe(ip, ip->i_no_addr, 1); |
1511 | } | 1511 | } |
1512 | 1512 | ||
1513 | /** | 1513 | /** |