ceph: include preferred_osd in file layout virtual xattr
authorSage Weil <sage@newdream.net>
Wed, 7 Oct 2009 17:59:30 +0000 (10:59 -0700)
committerSage Weil <sage@newdream.net>
Wed, 7 Oct 2009 17:59:30 +0000 (10:59 -0700)
Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/xattr.c

index 8eaac04d1b879dcc55fca27fe7647768d0c5c74f..65b3a84bbb2e57c6d5959ee208aad1bb3a6f7385 100644 (file)
@@ -91,11 +91,18 @@ static struct ceph_vxattr_cb ceph_dir_vxattrs[] = {
 static size_t ceph_vxattrcb_layout(struct ceph_inode_info *ci, char *val,
                                   size_t size)
 {
-       return snprintf(val, size,
+       int ret;
+
+       ret = snprintf(val, size,
                "chunk_bytes=%lld\nstripe_count=%lld\nobject_size=%lld\n",
                (unsigned long long)ceph_file_layout_su(ci->i_layout),
                (unsigned long long)ceph_file_layout_stripe_count(ci->i_layout),
                (unsigned long long)ceph_file_layout_object_size(ci->i_layout));
+       if (ceph_file_layout_pg_preferred(ci->i_layout))
+               ret += snprintf(val + ret, size, "preferred_osd=%lld\n",
+                           (unsigned long long)ceph_file_layout_pg_preferred(
+                                   ci->i_layout));
+       return ret;
 }
 
 static struct ceph_vxattr_cb ceph_file_vxattrs[] = {