Merge tag 'xfs-for-linus-v3.12-rc1' of git://oss.sgi.com/xfs/xfs

Pull xfs updates from Ben Myers:
 "For 3.12-rc1 there are a number of bugfixes in addition to work to
  ease usage of shared code between libxfs and the kernel, the rest of
  the work to enable project and group quotas to be used simultaneously,
  performance optimisations in the log and the CIL, directory entry file
  type support, fixes for log space reservations, some spelling/grammar
  cleanups, and the addition of user namespace support.

   - introduce readahead to log recovery
   - add directory entry file type support
   - fix a number of spelling errors in comments
   - introduce new Q_XGETQSTATV quotactl for project quotas
   - add USER_NS support
   - log space reservation rework
   - CIL optimisations
  - kernel/userspace libxfs rework"

* tag 'xfs-for-linus-v3.12-rc1' of git://oss.sgi.com/xfs/xfs: (112 commits)
  xfs: XFS_MOUNT_QUOTA_ALL needed by userspace
  xfs: dtype changed xfs_dir2_sfe_put_ino to xfs_dir3_sfe_put_ino
  Fix wrong flag ASSERT in xfs_attr_shortform_getvalue
  xfs: finish removing IOP_* macros.
  xfs: inode log reservations are too small
  xfs: check correct status variable for xfs_inobt_get_rec() call
  xfs: inode buffers may not be valid during recovery readahead
  xfs: check LSN ordering for v5 superblocks during recovery
  xfs: btree block LSN escaping to disk uninitialised
  XFS: Assertion failed: first <= last && last < BBTOB(bp->b_length), file: fs/xfs/xfs_trans_buf.c, line: 568
  xfs: fix bad dquot buffer size in log recovery readahead
  xfs: don't account buffer cancellation during log recovery readahead
  xfs: check for underflow in xfs_iformat_fork()
  xfs: xfs_dir3_sfe_put_ino can be static
  xfs: introduce object readahead to log recovery
  xfs: Simplify xfs_ail_min() with list_first_entry_or_null()
  xfs: Register hotcpu notifier after initialization
  xfs: add xfs sb v4 support for dirent filetype field
  xfs: Add write support for dirent filetype field
  xfs: Add read-only support for dirent filetype field
  ...
This commit is contained in:
Linus Torvalds
2013-09-09 11:19:09 -07:00
116 changed files with 13659 additions and 11957 deletions
+47
View File
@@ -38,6 +38,7 @@
#define Q_XGETQSTAT XQM_CMD(5) /* get quota subsystem status */
#define Q_XQUOTARM XQM_CMD(6) /* free disk space used by dquots */
#define Q_XQUOTASYNC XQM_CMD(7) /* delalloc flush, updates dquots */
#define Q_XGETQSTATV XQM_CMD(8) /* newer version of get quota */
/*
* fs_disk_quota structure:
@@ -163,4 +164,50 @@ typedef struct fs_quota_stat {
__u16 qs_iwarnlimit; /* limit for num warnings */
} fs_quota_stat_t;
/*
* fs_quota_statv is used by Q_XGETQSTATV for a given file system. It provides
* a centralized way to get meta information about the quota subsystem. eg.
* space taken up for user, group, and project quotas, number of dquots
* currently incore.
*
* This version has proper versioning support with appropriate padding for
* future expansions, and ability to expand for future without creating any
* backward compatibility issues.
*
* Q_XGETQSTATV uses the passed in value of the requested version via
* fs_quota_statv.qs_version to determine the return data layout of
* fs_quota_statv. The kernel will fill the data fields relevant to that
* version.
*
* If kernel does not support user space caller specified version, EINVAL will
* be returned. User space caller can then reduce the version number and retry
* the same command.
*/
#define FS_QSTATV_VERSION1 1 /* fs_quota_statv.qs_version */
/*
* Some basic information about 'quota files' for Q_XGETQSTATV command
*/
struct fs_qfilestatv {
__u64 qfs_ino; /* inode number */
__u64 qfs_nblks; /* number of BBs 512-byte-blks */
__u32 qfs_nextents; /* number of extents */
__u32 qfs_pad; /* pad for 8-byte alignment */
};
struct fs_quota_statv {
__s8 qs_version; /* version for future changes */
__u8 qs_pad1; /* pad for 16bit alignment */
__u16 qs_flags; /* FS_QUOTA_.* flags */
__u32 qs_incoredqs; /* number of dquots incore */
struct fs_qfilestatv qs_uquota; /* user quota information */
struct fs_qfilestatv qs_gquota; /* group quota information */
struct fs_qfilestatv qs_pquota; /* project quota information */
__s32 qs_btimelimit; /* limit for blks timer */
__s32 qs_itimelimit; /* limit for inodes timer */
__s32 qs_rtbtimelimit;/* limit for rt blks timer */
__u16 qs_bwarnlimit; /* limit for num warnings */
__u16 qs_iwarnlimit; /* limit for num warnings */
__u64 qs_pad2[8]; /* for future proofing */
};
#endif /* _LINUX_DQBLK_XFS_H */