summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/ceph/ceph_fs.h2
-rw-r--r--fs/ceph/osdmap.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/fs/ceph/ceph_fs.h b/fs/ceph/ceph_fs.h
index 9b16e2e06ea6..f8f27e28a6bf 100644
--- a/fs/ceph/ceph_fs.h
+++ b/fs/ceph/ceph_fs.h
@@ -38,7 +38,7 @@
#define CEPH_OSD_PROTOCOL 7 /* cluster internal */
#define CEPH_MDS_PROTOCOL 9 /* cluster internal */
#define CEPH_MON_PROTOCOL 5 /* cluster internal */
-#define CEPH_OSDC_PROTOCOL 20 /* server/client */
+#define CEPH_OSDC_PROTOCOL 21 /* server/client */
#define CEPH_MDSC_PROTOCOL 29 /* server/client */
#define CEPH_MONC_PROTOCOL 15 /* server/client */
diff --git a/fs/ceph/osdmap.c b/fs/ceph/osdmap.c
index 6f0aeff4185a..72d75a239ac2 100644
--- a/fs/ceph/osdmap.c
+++ b/fs/ceph/osdmap.c
@@ -791,6 +791,8 @@ int ceph_calc_object_layout(struct ceph_object_layout *ol,
pgid.pg64 = 0; /* start with it zeroed out */
pgid.pg.ps = ceph_full_name_hash(oid, strlen(oid));
pgid.pg.preferred = preferred;
+ if (preferred >= 0)
+ pgid.pg.ps += preferred;
pgid.pg.pool = le32_to_cpu(fl->fl_pg_pool);
if (preferred >= 0)
dout("calc_object_layout '%s' pgid %d.%xp%d (%llx)\n", oid,