Merge branch 'for-4.13-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull btrfs updates from David Sterba:
"The core updates improve error handling (mostly related to bios), with
the usual incremental work on the GFP_NOFS (mis)use removal,
refactoring or cleanups. Except the two top patches, all have been in
for-next for an extensive amount of time.
User visible changes:
- statx support
- quota override tunable
- improved compression thresholds
- obsoleted mount option alloc_start
Core updates:
- bio-related updates:
- faster bio cloning
- no allocation failures
- preallocated flush bios
- more kvzalloc use, memalloc_nofs protections, GFP_NOFS updates
- prep work for btree_inode removal
- dir-item validation
- qgoup fixes and updates
- cleanups:
- removed unused struct members, unused code, refactoring
- argument refactoring (fs_info/root, caller -> callee sink)
- SEARCH_TREE ioctl docs"
* 'for-4.13-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (115 commits)
btrfs: Remove false alert when fiemap range is smaller than on-disk extent
btrfs: Don't clear SGID when inheriting ACLs
btrfs: fix integer overflow in calc_reclaim_items_nr
btrfs: scrub: fix target device intialization while setting up scrub context
btrfs: qgroup: Fix qgroup reserved space underflow by only freeing reserved ranges
btrfs: qgroup: Introduce extent changeset for qgroup reserve functions
btrfs: qgroup: Fix qgroup reserved space underflow caused by buffered write and quotas being enabled
btrfs: qgroup: Return actually freed bytes for qgroup release or free data
btrfs: qgroup: Cleanup btrfs_qgroup_prepare_account_extents function
btrfs: qgroup: Add quick exit for non-fs extents
Btrfs: rework delayed ref total_bytes_pinned accounting
Btrfs: return old and new total ref mods when adding delayed refs
Btrfs: always account pinned bytes when dropping a tree block ref
Btrfs: update total_bytes_pinned when pinning down extents
Btrfs: make BUG_ON() in add_pinned_bytes() an ASSERT()
Btrfs: make add_pinned_bytes() take an s64 num_bytes instead of u64
btrfs: fix validation of XATTR_ITEM dir items
btrfs: Verify dir_item in iterate_object_props
btrfs: Check name_len before in btrfs_del_root_ref
btrfs: Check name_len before reading btrfs_get_name
...
This commit is contained in:
@@ -426,31 +426,54 @@ struct btrfs_ioctl_ino_lookup_args {
|
||||
char name[BTRFS_INO_LOOKUP_PATH_MAX];
|
||||
};
|
||||
|
||||
/* Search criteria for the btrfs SEARCH ioctl family. */
|
||||
struct btrfs_ioctl_search_key {
|
||||
/* which root are we searching. 0 is the tree of tree roots */
|
||||
__u64 tree_id;
|
||||
|
||||
/* keys returned will be >= min and <= max */
|
||||
__u64 min_objectid;
|
||||
__u64 max_objectid;
|
||||
|
||||
/* keys returned will be >= min and <= max */
|
||||
__u64 min_offset;
|
||||
__u64 max_offset;
|
||||
|
||||
/* max and min transids to search for */
|
||||
__u64 min_transid;
|
||||
__u64 max_transid;
|
||||
|
||||
/* keys returned will be >= min and <= max */
|
||||
__u32 min_type;
|
||||
__u32 max_type;
|
||||
/*
|
||||
* The tree we're searching in. 1 is the tree of tree roots, 2 is the
|
||||
* extent tree, etc...
|
||||
*
|
||||
* A special tree_id value of 0 will cause a search in the subvolume
|
||||
* tree that the inode which is passed to the ioctl is part of.
|
||||
*/
|
||||
__u64 tree_id; /* in */
|
||||
|
||||
/*
|
||||
* how many items did userland ask for, and how many are we
|
||||
* returning
|
||||
* When doing a tree search, we're actually taking a slice from a
|
||||
* linear search space of 136-bit keys.
|
||||
*
|
||||
* A full 136-bit tree key is composed as:
|
||||
* (objectid << 72) + (type << 64) + offset
|
||||
*
|
||||
* The individual min and max values for objectid, type and offset
|
||||
* define the min_key and max_key values for the search range. All
|
||||
* metadata items with a key in the interval [min_key, max_key] will be
|
||||
* returned.
|
||||
*
|
||||
* Additionally, we can filter the items returned on transaction id of
|
||||
* the metadata block they're stored in by specifying a transid range.
|
||||
* Be aware that this transaction id only denotes when the metadata
|
||||
* page that currently contains the item got written the last time as
|
||||
* result of a COW operation. The number does not have any meaning
|
||||
* related to the transaction in which an individual item that is being
|
||||
* returned was created or changed.
|
||||
*/
|
||||
__u32 nr_items;
|
||||
__u64 min_objectid; /* in */
|
||||
__u64 max_objectid; /* in */
|
||||
__u64 min_offset; /* in */
|
||||
__u64 max_offset; /* in */
|
||||
__u64 min_transid; /* in */
|
||||
__u64 max_transid; /* in */
|
||||
__u32 min_type; /* in */
|
||||
__u32 max_type; /* in */
|
||||
|
||||
/*
|
||||
* input: The maximum amount of results desired.
|
||||
* output: The actual amount of items returned, restricted by any of:
|
||||
* - reaching the upper bound of the search range
|
||||
* - reaching the input nr_items amount of items
|
||||
* - completely filling the supplied memory buffer
|
||||
*/
|
||||
__u32 nr_items; /* in/out */
|
||||
|
||||
/* align to 64 bits */
|
||||
__u32 unused;
|
||||
|
||||
Reference in New Issue
Block a user