linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] BTRFS_DEV_REPLACE_ITEM_STATE_* doesn't match with on disk
@ 2018-11-12  4:58 Anand Jain
  2018-11-12  7:50 ` Nikolay Borisov
  0 siblings, 1 reply; 6+ messages in thread
From: Anand Jain @ 2018-11-12  4:58 UTC (permalink / raw)
  To: linux-btrfs


The dev_replace_state defines are miss matched between the
BTRFS_IOCTL_DEV_REPLACE_STATE_* and BTRFS_DEV_REPLACE_ITEM_STATE_* [1].

[1]
-----------------------------
btrfs.h:#define BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED		2
btrfs.h:#define BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED		3
btrfs.h:#define BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED		4

btrfs_tree.h:#define BTRFS_DEV_REPLACE_ITEM_STATE_SUSPENDED	2
btrfs_tree.h:#define BTRFS_DEV_REPLACE_ITEM_STATE_FINISHED	3
btrfs_tree.h:#define BTRFS_DEV_REPLACE_ITEM_STATE_CANCELED	4
-----------------------------

The BTRFS_DEV_REPLACE_ITEM_STATE_* series is unused in both btrfs.ko and 
btrfs-progs, the on-disk also follows BTRFS_IOCTL_DEV_REPLACE_STATE_* 
(we set dev_replace->replace_state using the
BTRFS_IOCTL_DEV_REPLACE_STATE_* defines and write to the on-disk).

  359         btrfs_set_dev_replace_replace_state(eb, ptr,
  360                 dev_replace->replace_state);

IMO it should be ok to delete the BTRFS_DEV_REPLACE_ITEM_STATE_*
altogether? But how about the userland progs other than btrfs-progs?
If not at least fix the miss match as in [2], any comments?

[2]
--------------------------------------
diff --git a/include/uapi/linux/btrfs_tree.h 
b/include/uapi/linux/btrfs_tree.h
index aff1356c2bb8..9ffa7534cadf 100644
--- a/include/uapi/linux/btrfs_tree.h
+++ b/include/uapi/linux/btrfs_tree.h
@@ -805,9 +805,9 @@ struct btrfs_dev_stats_item {
  #define BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID     1
  #define BTRFS_DEV_REPLACE_ITEM_STATE_NEVER_STARTED     0
  #define BTRFS_DEV_REPLACE_ITEM_STATE_STARTED           1
-#define BTRFS_DEV_REPLACE_ITEM_STATE_SUSPENDED         2
-#define BTRFS_DEV_REPLACE_ITEM_STATE_FINISHED          3
-#define BTRFS_DEV_REPLACE_ITEM_STATE_CANCELED          4
+#define BTRFS_DEV_REPLACE_ITEM_STATE_FINISHED          2
+#define BTRFS_DEV_REPLACE_ITEM_STATE_CANCELED          3
+#define BTRFS_DEV_REPLACE_ITEM_STATE_SUSPENDED         4

  struct btrfs_dev_replace_item {
         /*
--------------------------------------


Thanks, Anand

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-08-02  9:46 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-12  4:58 [RFC] BTRFS_DEV_REPLACE_ITEM_STATE_* doesn't match with on disk Anand Jain
2018-11-12  7:50 ` Nikolay Borisov
2018-11-13 10:32   ` Anand Jain
2018-11-21  7:31     ` Anand Jain
2019-08-02  4:07       ` Anand Jain
2019-08-02  9:46   ` David Sterba

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).