aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/crush
diff options
context:
space:
mode:
authorIlya Dryomov <ilya.dryomov@inktank.com>2013-12-24 21:19:25 +0200
committerIlya Dryomov <ilya.dryomov@inktank.com>2013-12-31 20:32:15 +0200
commitc6d98a603a02594f6ecf16d0a0af989ae9fa7abd (patch)
tree78984357ac4b19d53b8e51ad70c81be12d50e81c /include/linux/crush
parentcrush: eliminate CRUSH_MAX_SET result size limitation (diff)
downloadlinux-dev-c6d98a603a02594f6ecf16d0a0af989ae9fa7abd.tar.xz
linux-dev-c6d98a603a02594f6ecf16d0a0af989ae9fa7abd.zip
crush: return CRUSH_ITEM_UNDEF for failed placements with indep
For firstn mode, if we fail to make a valid placement choice, we just continue and return a short result to the caller. For indep mode, however, we need to make the position stable, and return an undefined value on failed placements to avoid shifting later results to the left. Reflects ceph.git commit b1d4dd4eb044875874a1d01c01c7d766db5d0a80. Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'include/linux/crush')
-rw-r--r--include/linux/crush/crush.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/crush/crush.h b/include/linux/crush/crush.h
index 83543c504b5a..3d6a12928560 100644
--- a/include/linux/crush/crush.h
+++ b/include/linux/crush/crush.h
@@ -19,10 +19,11 @@
#define CRUSH_MAGIC 0x00010000ul /* for detecting algorithm revisions */
-
#define CRUSH_MAX_DEPTH 10 /* max crush hierarchy depth */
+#define CRUSH_ITEM_UNDEF 0x7fffffff /* undefined result */
+
/*
* CRUSH uses user-defined "rules" to describe how inputs should be
* mapped to devices. A rule consists of sequence of steps to perform