xfs: update the finobt on inode free
authorBrian Foster <bfoster@redhat.com>
Thu, 24 Apr 2014 06:00:53 +0000 (16:00 +1000)
committerDave Chinner <david@fromorbit.com>
Thu, 24 Apr 2014 06:00:53 +0000 (16:00 +1000)
commit3efa4ffd58a04f859713daaf910f1f1ff8ef647f
treeb103ea8df040f239429d9a29d7ae5876933c8cae
parent2b64ee5cdc106704b5c0f8954a52aa598eee25eb
xfs: update the finobt on inode free

An inode free operation can have several effects on the finobt. If
all inodes have been freed and the chunk deallocated, we remove the
finobt record. If the inode chunk was previously full, we must
insert a new record based on the existing inobt record. Otherwise,
we modify the record in place.

Create the xfs_difree_finobt() function to identify the potential
scenarios and update the finobt appropriately.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_ialloc.c