Merge tag 'upstream-3.15-rc1' of git://git.infradead.org/linux-ubifs
Pull ubifs updates from Artem Bityutskiy: "This pull request includes the 'ubiblock' driver which provides R/O block access to UBI volumes. It is useful for those who want to use squashfs on top of raw flash devices. UBI will provide bit-flip handling and wear-levelling in this case (e.g., if there are other UBI volumes with R/W UBIFS too). The driver is actually pretty small and it is part of the UBI kernel subsystem. Delivered by Ezequiel Garcia, along with a piece of documentation on the MTD web site and the user-space tool for creating and removing block devices" * tag 'upstream-3.15-rc1' of git://git.infradead.org/linux-ubifs: UBI: block: Remove __initdata from ubiblock_param_ops UBI: make UBI_IOCVOLCRBLK take a parameter for future usage UBI: rename block device ioctls UBI: block: Use ENOSYS as return value when CONFIG_UBIBLOCK=n UBI: block: Add CONFIG_BLOCK dependency UBI: block: Use 'u64' for the 64-bit dividend UBI: block: Mark init-only symbol as __initdata UBI: block: do not use term "attach" UBI: R/O block driver on top of UBI volumes
This commit is contained in:
@@ -134,6 +134,16 @@
|
||||
* used. A pointer to a &struct ubi_set_vol_prop_req object is expected to be
|
||||
* passed. The object describes which property should be set, and to which value
|
||||
* it should be set.
|
||||
*
|
||||
* Block devices on UBI volumes
|
||||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
*
|
||||
* To create a R/O block device on top of an UBI volume the %UBI_IOCVOLCRBLK
|
||||
* should be used. A pointer to a &struct ubi_blkcreate_req object is expected
|
||||
* to be passed, which is not used and reserved for future usage.
|
||||
*
|
||||
* Conversely, to remove a block device the %UBI_IOCVOLRMBLK should be used,
|
||||
* which takes no arguments.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -191,6 +201,10 @@
|
||||
/* Set an UBI volume property */
|
||||
#define UBI_IOCSETVOLPROP _IOW(UBI_VOL_IOC_MAGIC, 6, \
|
||||
struct ubi_set_vol_prop_req)
|
||||
/* Create a R/O block device on top of an UBI volume */
|
||||
#define UBI_IOCVOLCRBLK _IOW(UBI_VOL_IOC_MAGIC, 7, struct ubi_blkcreate_req)
|
||||
/* Remove the R/O block device */
|
||||
#define UBI_IOCVOLRMBLK _IO(UBI_VOL_IOC_MAGIC, 8)
|
||||
|
||||
/* Maximum MTD device name length supported by UBI */
|
||||
#define MAX_UBI_MTD_NAME_LEN 127
|
||||
@@ -420,4 +434,12 @@ struct ubi_set_vol_prop_req {
|
||||
__u64 value;
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
* struct ubi_blkcreate_req - a data structure used in block creation requests.
|
||||
* @padding: reserved for future, not used, has to be zeroed
|
||||
*/
|
||||
struct ubi_blkcreate_req {
|
||||
__s8 padding[128];
|
||||
} __packed;
|
||||
|
||||
#endif /* __UBI_USER_H__ */
|
||||
|
||||
Reference in New Issue
Block a user