[dm-devel] [PATCH 5/7] dm: add 'DM_NOFLUSH_FLAG' ioctl option for suspend
Kiyoshi Ueda
k-ueda at ct.jp.nec.com
Tue Oct 10 21:31:26 UTC 2006
This patch adds ioctl option for noflush suspending.
As the interface is extended, the version number is incremented.
Should have no effect on the behavior.
Test results:
Confirmed the option is given from user-space correctly.
The patch is for:
2.6.18-mm2 + patch 1-4
Signed-off-by: Kiyoshi Ueda <k-ueda at ct.jp.nec.com>
Signed-off-by: Jun'ichi Nomura <j-nomura at ce.jp.nec.com>
diff -rupN 4-target-rval-iface-change/drivers/md/dm.h 5-add-noflush-ioctl-opt/drivers/md/dm.h
--- 4-target-rval-iface-change/drivers/md/dm.h 2006-10-05 10:45:08.000000000 -0400
+++ 5-add-noflush-ioctl-opt/drivers/md/dm.h 2006-10-05 10:54:03.000000000 -0400
@@ -47,6 +47,7 @@
* Suspend feature flags
*/
#define DM_SUSPEND_LOCKFS_FLAG (1 << 0)
+#define DM_SUSPEND_NOFLUSH_FLAG (1 << 1)
/*
* List of devices that a metadevice uses and should open/close.
diff -rupN 4-target-rval-iface-change/drivers/md/dm-ioctl.c 5-add-noflush-ioctl-opt/drivers/md/dm-ioctl.c
--- 4-target-rval-iface-change/drivers/md/dm-ioctl.c 2006-10-05 10:26:33.000000000 -0400
+++ 5-add-noflush-ioctl-opt/drivers/md/dm-ioctl.c 2006-10-05 10:53:22.000000000 -0400
@@ -769,6 +769,8 @@ static int do_suspend(struct dm_ioctl *p
if (param->flags & DM_SKIP_LOCKFS_FLAG)
suspend_flags &= ~DM_SUSPEND_LOCKFS_FLAG;
+ if (param->flags & DM_NOFLUSH_FLAG)
+ suspend_flags |= DM_SUSPEND_NOFLUSH_FLAG;
if (!dm_suspended(md))
r = dm_suspend(md, suspend_flags);
@@ -810,6 +812,8 @@ static int do_resume(struct dm_ioctl *pa
/* Suspend if it isn't already suspended */
if (param->flags & DM_SKIP_LOCKFS_FLAG)
suspend_flags &= ~DM_SUSPEND_LOCKFS_FLAG;
+ if (param->flags & DM_NOFLUSH_FLAG)
+ suspend_flags |= DM_SUSPEND_NOFLUSH_FLAG;
if (!dm_suspended(md))
dm_suspend(md, suspend_flags);
diff -rupN 4-target-rval-iface-change/include/linux/dm-ioctl.h 5-add-noflush-ioctl-opt/include/linux/dm-ioctl.h
--- 4-target-rval-iface-change/include/linux/dm-ioctl.h 2006-10-05 10:24:05.000000000 -0400
+++ 5-add-noflush-ioctl-opt/include/linux/dm-ioctl.h 2006-10-05 10:55:10.000000000 -0400
@@ -285,7 +285,7 @@ typedef char ioctl_struct[308];
#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
#define DM_VERSION_MAJOR 4
-#define DM_VERSION_MINOR 10
+#define DM_VERSION_MINOR 11
#define DM_VERSION_PATCHLEVEL 0
#define DM_VERSION_EXTRA "-ioctl (2006-09-14)"
@@ -323,4 +323,9 @@ typedef char ioctl_struct[308];
*/
#define DM_SKIP_LOCKFS_FLAG (1 << 10) /* In */
+/*
+ * Set this to suspend without flushing queued ios.
+ */
+#define DM_NOFLUSH_FLAG (1 << 11) /* In */
+
#endif /* _LINUX_DM_IOCTL_H */
More information about the dm-devel
mailing list