Skip to content

Commit

Permalink
xfs: add minimum file size filtering to eofblocks scan
Browse files Browse the repository at this point in the history
Support minimum file size filtering in the eofblocks scan. The
caller must set the XFS_EOF_FLAGS_MINFILESIZE flags bit and minimum
file size value in bytes.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
  • Loading branch information
Brian Foster authored and Ben Myers committed Nov 8, 2012
1 parent 1b55604 commit 00ca79a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
7 changes: 5 additions & 2 deletions fs/xfs/xfs_fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -350,19 +350,22 @@ struct xfs_eofblocks {
gid_t eof_gid;
prid_t eof_prid;
__u32 pad32;
__u64 pad64[13];
__u64 eof_min_file_size;
__u64 pad64[12];
};

/* eof_flags values */
#define XFS_EOF_FLAGS_SYNC (1 << 0) /* sync/wait mode scan */
#define XFS_EOF_FLAGS_UID (1 << 1) /* filter by uid */
#define XFS_EOF_FLAGS_GID (1 << 2) /* filter by gid */
#define XFS_EOF_FLAGS_PRID (1 << 3) /* filter by project id */
#define XFS_EOF_FLAGS_MINFILESIZE (1 << 4) /* filter by min file size */
#define XFS_EOF_FLAGS_VALID \
(XFS_EOF_FLAGS_SYNC | \
XFS_EOF_FLAGS_UID | \
XFS_EOF_FLAGS_GID | \
XFS_EOF_FLAGS_PRID)
XFS_EOF_FLAGS_PRID | \
XFS_EOF_FLAGS_MINFILESIZE)


/*
Expand Down
11 changes: 9 additions & 2 deletions fs/xfs/xfs_icache.c
Original file line number Diff line number Diff line change
Expand Up @@ -1215,8 +1215,15 @@ xfs_inode_free_eofblocks(
mapping_tagged(VFS_I(ip)->i_mapping, PAGECACHE_TAG_DIRTY))
return 0;

if (eofb && !xfs_inode_match_id(ip, eofb))
return 0;
if (eofb) {
if (!xfs_inode_match_id(ip, eofb))
return 0;

/* skip the inode if the file size is too small */
if (eofb->eof_flags & XFS_EOF_FLAGS_MINFILESIZE &&
XFS_ISIZE(ip) < eofb->eof_min_file_size)
return 0;
}

ret = xfs_free_eofblocks(ip->i_mount, ip, true);

Expand Down

0 comments on commit 00ca79a

Please sign in to comment.