- /* FIXME Provide way to set read_ahead_flags */
if (_switches[READAHEAD_ARG] &&
- !dm_task_set_read_ahead(dmt, _int_args[READAHEAD_ARG], 0))
+ !dm_task_set_read_ahead(dmt, _int_args[READAHEAD_ARG],
+ _read_ahead_flags))
goto out;
if (!dm_task_run(dmt))
@@ -681,9 +682,9 @@
if (_switches[NOLOCKFS_ARG] && !dm_task_skip_lockfs(dmt))
goto out;
- /* FIXME Provide way to set read_ahead_flags */
if (_switches[READAHEAD_ARG] &&
- !dm_task_set_read_ahead(dmt, _int_args[READAHEAD_ARG], 0))
+ !dm_task_set_read_ahead(dmt, _int_args[READAHEAD_ARG],
+ _read_ahead_flags))
goto out;
namebase = strdup((*argv)[0]);
base = basename(namebase);
@@ -2535,10 +2537,25 @@
_switches[NOLOCKFS_ARG]++;
if ((ind == NOOPENCOUNT_ARG))
_switches[NOOPENCOUNT_ARG]++;
- /* FIXME Accept auto/none & set read_ahead_flags too */
if ((ind == READAHEAD_ARG)) {
_switches[READAHEAD_ARG]++;
- _int_args[READAHEAD_ARG] = atoi(optarg);
+ if (!strcasecmp(optarg, "auto"))
+ _int_args[READAHEAD_ARG] = DM_READ_AHEAD_AUTO;
+ else if (!strcasecmp(optarg, "none"))
+ _int_args[READAHEAD_ARG] = DM_READ_AHEAD_NONE;
+ else {
+ for (s = optarg; isspace(*s); s++)
+ ;
+ if (*s == '+')
+ _read_ahead_flags = DM_READ_AHEAD_MINIMUM_FLAG;
+ _int_args[READAHEAD_ARG] = atoi(optarg);
+ if (_int_args[READAHEAD_ARG] < -1) {
+ log_error("Negative read ahead value "
+ "(%d) is not understood.",
+ _int_args[READAHEAD_ARG]);
+ return 0;
+ }
+ }
}
if ((ind == SHOWKEYS_ARG))
_switches[SHOWKEYS_ARG]++;
--- device-mapper/man/dmsetup.8 2007/11/27 20:57:05 1.19
+++ device-mapper/man/dmsetup.8 2007/11/29 14:44:28 1.20
@@ -114,9 +114,14 @@
.IP fB-r|--readonly
.br
Set the table being loaded read-only.
-.IP fB--readahead <sectors>
+.IP fB--readahead [+]<sectors>|auto|none
.br
Specify read ahead size in units of sectors.
+The default value is "auto" which allows the kernel to choose
+a suitable value automatically. The + prefix lets you
+specify a minimum value which will not be used if it is
+smaller than the value chosen by the kernel.
+"None" is equivalent to specifying zero.
.IP fB--table <table>
.br
Specify a one-line table directly on the command line.
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel