[XFS] stop using xfs_itobp in xfs_bulkstat
xfs_bulkstat only wants the dinode, offset and buffer from a given inode number. Instead of using xfs_itobp on a fake inode which is complicated and currently leads to leaks of the security data just use xfs_inotobp which is designed to do exactly the kind of lookup xfs_bulkstat wants. The only thing that's missing in xfs_inotobp is a flags paramter that let's us pass down XFS_IMAP_BULKSTAT, but that can easily added. SGI-PV: 987246 SGI-Modid: xfs-linux-melb:xfs-kern:32397a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: David Chinner <david@fromorbit.com>
This commit is contained in:

committed by
Lachlan McIlroy

parent
455486b9cc
commit
c679eef052
@@ -158,7 +158,7 @@ typedef struct xfs_icdinode {
|
||||
#define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */
|
||||
|
||||
/*
|
||||
* Flags for xfs_itobp(), xfs_imap() and xfs_dilocate().
|
||||
* Flags for xfs_inotobp, xfs_itobp(), xfs_imap() and xfs_dilocate().
|
||||
*/
|
||||
#define XFS_IMAP_LOOKUP 0x1
|
||||
#define XFS_IMAP_BULKSTAT 0x2
|
||||
@@ -514,7 +514,6 @@ int xfs_itruncate_finish(struct xfs_trans **, xfs_inode_t *,
|
||||
xfs_fsize_t, int, int);
|
||||
int xfs_iunlink(struct xfs_trans *, xfs_inode_t *);
|
||||
|
||||
struct xfs_inode * xfs_inode_alloc(struct xfs_mount *, xfs_ino_t);
|
||||
void xfs_idestroy(xfs_inode_t *);
|
||||
void xfs_iextract(xfs_inode_t *);
|
||||
void xfs_iext_realloc(xfs_inode_t *, int, int);
|
||||
@@ -531,6 +530,9 @@ void xfs_mark_inode_dirty_sync(xfs_inode_t *);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
int xfs_inotobp(struct xfs_mount *, struct xfs_trans *,
|
||||
xfs_ino_t, struct xfs_dinode **,
|
||||
struct xfs_buf **, int *, uint);
|
||||
int xfs_itobp(struct xfs_mount *, struct xfs_trans *,
|
||||
struct xfs_inode *, struct xfs_dinode **,
|
||||
struct xfs_buf **, xfs_daddr_t, uint, uint);
|
||||
|
Reference in New Issue
Block a user