xfs: allow single bulkstat of special inodes
authorDarrick J. Wong <darrick.wong@oracle.com>
Thu, 4 Jul 2019 03:36:29 +0000 (20:36 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 4 Jul 2019 14:52:24 +0000 (07:52 -0700)
commitbf3cb394479210a9ebcf8fef7a7f8fcabc7b9928
treeb1e1742480e6775b16317046b6eec682d8f6ef7d
parent13d59a2a61cbbb4cda13a0cba6d4d1fc537f5dd4
xfs: allow single bulkstat of special inodes

Create a new bulk ireq flag that enables userspace to ask us for a
special inode number instead of interpreting @ino as a literal inode
number.  This enables us to query the root inode easily.

The reason for adding the ability to query specifically the root
directory inode is that certain programs (xfsdump and xfsrestore) want
to confirm when they've been pointed to the root directory.  The
userspace code assumes the root directory is always the first result
from calling bulkstat with lastino == 0, but this isn't true if the
(initial btree roots + initial AGFL + inode alignment padding) is itself
long enough to be allocated to new inodes if all of those blocks should
happen to be free at the same time.  Rather than make userspace guess
at internal filesystem state, we provide a direct query.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Allison Collins <allison.henderson@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
fs/xfs/libxfs/xfs_fs.h
fs/xfs/xfs_ioctl.c