Lines Matching +full:layer +full:- +full:buffer +full:- +full:offset
1 .. SPDX-License-Identifier: GPL-2.0
23 1. A lower layer that provides an iterator over ranges of file offsets.
24 This layer tries to obtain mappings of each file ranges to storage
28 2. An upper layer that acts upon the space mappings provided by the
29 lower layer iterator.
31 The iteration can involve mappings of file's logical offset ranges to
32 physical extents, but the storage layer information is not necessarily
78 1. Obtain a space mapping via ``->iomap_begin``
80 2. For each sub-unit of work...
89 4. Release the mapping via ``->iomap_end``, if necessary
105 -----------
107 * **buffer head**: Shattered remnants of the old buffer cache.
127 device pre-shutdown hook from returning before other threads have
152 ----------------
158 .. code-block:: c
162 loff_t offset;
176 * ``offset`` and ``length`` describe the range of file offsets, in
193 ``->iomap_end`` function must delete the reservation.
210 * **IOMAP_INLINE**: The file range maps to the memory buffer
212 For write operation, the ``->iomap_end`` function presumably
217 These flags should be set by the filesystem in ``->iomap_begin``:
234 * **IOMAP_F_BUFFER_HEAD**: This mapping requires the use of buffer
250 The filesystem should supply an ``->iomap_end`` function if it needs
257 iomap will call ``->iomap_end`` on this mapping and then
258 ``->iomap_begin`` to obtain a new mapping.
271 * ``inline_data`` points to a memory buffer for I/O involving
275 * ``private`` is a pointer to `filesystem-private information
276 <https://lore.kernel.org/all/20180619164137.13720-7-[email protected]/>`_.
277 This value will be passed unchanged to ``->iomap_end``.
285 should not be held between ``->iomap_begin`` and ``->iomap_end``.
291 --------------------
296 .. code-block:: c
308 ``->iomap_begin``
311 iomap operations call ``->iomap_begin`` to obtain one file mapping for
321 operation-specific sections below.
329 memory-like storage.
334 This is similar in intent to ``O_NONBLOCK`` for network APIs - it is
350 then they should return ``-EAGAIN`` as early as possible rather than
356 <https://lore.kernel.org/all/20191008071527.29304-9-[email protected]/>`_
362 ``->iomap_end``
365 After the operation completes, the ``->iomap_end`` function, if present,
368 context that were set up in ``->iomap_begin``.
373 ``flags`` will contain the same value passed to ``->iomap_begin``.
406 ``->iomap_begin`` and ``->iomap_end`` functions to coordinate
439 * Does iomap *actually* work for non-regular file data?