diff options
author | Matthew Wilcox <matthew.r.wilcox@intel.com> | 2015-01-07 18:05:34 +0200 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-01-13 21:58:11 -0700 |
commit | dd22f551ac0ad366f92f601835f6623b83adc331 (patch) | |
tree | 47f6c4f274b3b6989869734b32afdc2e5d85769d /Documentation/filesystems/xip.txt | |
parent | c761d96b079e99d106fa4064e730ef7d0f312f9d (diff) | |
download | op-kernel-dev-dd22f551ac0ad366f92f601835f6623b83adc331.zip op-kernel-dev-dd22f551ac0ad366f92f601835f6623b83adc331.tar.gz |
block: Change direct_access calling convention
In order to support accesses to larger chunks of memory, pass in a
'size' parameter (counted in bytes), and return the amount available at
that address.
Add a new helper function, bdev_direct_access(), to handle common
functionality including partition handling, checking the length requested
is positive, checking for the sector being page-aligned, and checking
the length of the request does not pass the end of the partition.
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Boaz Harrosh <boaz@plexistor.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'Documentation/filesystems/xip.txt')
-rw-r--r-- | Documentation/filesystems/xip.txt | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/Documentation/filesystems/xip.txt b/Documentation/filesystems/xip.txt index 0466ee5..b774729 100644 --- a/Documentation/filesystems/xip.txt +++ b/Documentation/filesystems/xip.txt @@ -28,12 +28,15 @@ Implementation Execute-in-place is implemented in three steps: block device operation, address space operation, and file operations. -A block device operation named direct_access is used to retrieve a -reference (pointer) to a block on-disk. The reference is supposed to be -cpu-addressable, physical address and remain valid until the release operation -is performed. A struct block_device reference is used to address the device, -and a sector_t argument is used to identify the individual block. As an -alternative, memory technology devices can be used for this. +A block device operation named direct_access is used to translate the +block device sector number to a page frame number (pfn) that identifies +the physical page for the memory. It also returns a kernel virtual +address that can be used to access the memory. + +The direct_access method takes a 'size' parameter that indicates the +number of bytes being requested. The function should return the number +of bytes that can be contiguously accessed at that offset. It may also +return a negative errno if an error occurs. The block device operation is optional, these block devices support it as of today: |