]> Pileus Git - ~andy/linux/blobdiff - fs/ceph/ioctl.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux...
[~andy/linux] / fs / ceph / ioctl.c
index 669622fd1ae3d52af418cc4c283a5f22513bca73..dc66c9e023e4f3aee170db98d2bb549819d99abc 100644 (file)
@@ -183,6 +183,8 @@ static long ceph_ioctl_get_dataloc(struct file *file, void __user *arg)
        struct ceph_inode_info *ci = ceph_inode(inode);
        struct ceph_osd_client *osdc =
                &ceph_sb_to_client(inode->i_sb)->client->osdc;
+       struct ceph_object_locator oloc;
+       struct ceph_object_id oid;
        u64 len = 1, olen;
        u64 tmp;
        struct ceph_pg pgid;
@@ -211,8 +213,10 @@ static long ceph_ioctl_get_dataloc(struct file *file, void __user *arg)
        snprintf(dl.object_name, sizeof(dl.object_name), "%llx.%08llx",
                 ceph_ino(inode), dl.object_no);
 
-       r = ceph_calc_ceph_pg(&pgid, dl.object_name, osdc->osdmap,
-                               ceph_file_layout_pg_pool(ci->i_layout));
+       oloc.pool = ceph_file_layout_pg_pool(ci->i_layout);
+       ceph_oid_set_name(&oid, dl.object_name);
+
+       r = ceph_oloc_oid_to_pg(osdc->osdmap, &oloc, &oid, &pgid);
        if (r < 0) {
                up_read(&osdc->map_sem);
                return r;