1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/libdm
Bryn M. Reeves 93f420caf4 libdm: fix _stats_get_extents_for_file()
Handle files that contain multiple logical extents in a single
physical extent properly:

  - In FIEMAP terms a logical extent is a contiguous range of
    sectors in the file's address space.

  - One or more physically adjacent logical extents comprise a
    physical extent: these are the disk areas that will be mapped
    to regions.

  - An extent boundary occurs when the start sector of extent
    n+1 is not equal to (n.start + n.length).

This requires that we accumulate the length values of extents
returned by FIEMAP until a discontinuity is found (since each
struct fiemap_extent returned by FIEMAP only represents a single
logical extent, which may be contiguous with other logical
extents on-disk).

This avoids creating large numbers of regions for physically
adjacent (logical) extents and fixes the earlier behaviour which
would only map the first logical extent of the physical extent,
leaving gaps in the region table for these files.
2016-12-13 09:09:25 +00:00
..
datastruct libdm: fix mask leak in dm_bitset_parse_list 2016-07-06 08:59:09 +01:00
ioctl libdm: Show lib vsn even if driver vsn unavailable. 2016-05-12 01:14:25 +01:00
misc libdm: use dm_log_with_errno always 2016-11-03 17:49:07 +01:00
mm gcc: cleanup some sign warnings 2016-02-23 12:25:25 +01:00
regex cleanup: hide gcc warning 2016-11-23 17:55:03 +01:00
.exported_symbols libdm: Use wrappers for all malloc functions. 2015-07-22 23:11:48 +01:00
.exported_symbols.Base hash: change name of new lookup function 2015-11-17 11:59:44 -06:00
.exported_symbols.DM_1_02_97 libdm: new dm_task_get_info with internal_suspend 2015-05-15 16:48:22 +02:00
.exported_symbols.DM_1_02_98 libdm: Add dm_task_get_errno to return ioctl errno. 2015-05-26 15:13:49 +01:00
.exported_symbols.DM_1_02_99 libdm: add dm_tree_node_set_thin_pool_read_only 2015-06-18 15:15:39 +02:00
.exported_symbols.DM_1_02_100 config: add support for config value formatting flags 2015-06-24 11:13:37 +02:00
.exported_symbols.DM_1_02_101 report: add infrastructure to recognize fuzzy reserved names and returning dynamic reserved values 2015-07-03 10:47:09 +02:00
.exported_symbols.DM_1_02_103 libdm: Use wrappers for all malloc functions. 2015-07-22 23:11:48 +01:00
.exported_symbols.DM_1_02_104 libdm: Drop ignored duplicate export designation. 2015-08-26 17:30:36 +01:00
.exported_symbols.DM_1_02_105 pre-release 2015-08-17 17:20:14 +01:00
.exported_symbols.DM_1_02_106 libdm: add per region precise timestamps property methods 2015-08-24 20:03:21 +01:00
.exported_symbols.DM_1_02_107 libdm: add latency histogram support 2015-09-02 20:48:59 +01:00
.exported_symbols.DM_1_02_110 libdm: dm_tree_node_size_changed recognizes reduction 2015-10-25 21:05:15 +01:00
.exported_symbols.DM_1_02_113 libdm: introduce dm_get_status_mirror 2015-12-01 13:00:43 +01:00
.exported_symbols.DM_1_02_124 libdm: Add dm_udev_wait_immediate. 2016-04-28 00:54:27 +01:00
.exported_symbols.DM_1_02_128 libdm: report: add dm_report_set_selection 2016-06-20 11:33:43 +02:00
.exported_symbols.DM_1_02_129 libdm: add stats group and region iterators and properties 2016-07-05 19:53:16 +01:00
.exported_symbols.DM_1_02_131 libdm: add dm_stats_create_regions_from_fd() 2016-07-08 14:34:41 +01:00
.exported_symbols.DM_1_02_133 libdm: report: add dm_report_group_output_and_pop_all 2016-08-09 18:24:45 +02:00
.exported_symbols.DM_1_02_135 libdm: add dm_config_parse_without_dup_node_check 2016-09-21 18:15:18 +02:00
libdevmapper.h libdm: fix performance of failed filemap cleanup 2016-12-10 11:59:16 +00:00
libdevmapper.pc.in libdm: pkgconfig: fix devmapper.pc to not reference nonexistent rt.pc file 2015-09-03 09:28:42 +02:00
libdm-common.c libdm: validate vsnprintf 2016-12-11 23:24:17 +01:00
libdm-common.h doc: change fsf address 2016-01-21 12:11:37 +01:00
libdm-config.c libdm: add dm_config_parse_without_dup_node_check 2016-09-21 18:15:18 +02:00
libdm-deptree.c libdm: cleaner debug message 2016-09-13 09:24:38 +02:00
libdm-file.c libdm: do not issue 'Failed to create directory' message for failure in dm_create_dir 2016-06-29 15:58:18 +02:00
libdm-report.c cov: use unsigned for single bit values 2016-12-12 11:21:42 +01:00
libdm-stats.c libdm: fix _stats_get_extents_for_file() 2016-12-13 09:09:25 +00:00
libdm-string.c doc: change fsf address 2016-01-21 12:11:37 +01:00
libdm-targets.c libdm: cache status reports passthrough cache mode 2016-05-19 18:26:07 +02:00
libdm-timestamp.c doc: change fsf address 2016-01-21 12:11:37 +01:00
Makefile.in doc: change fsf address 2016-01-21 12:11:37 +01:00