X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fllite%2Flloop.c;h=3b13aabd4d91b4eb78a35a249b1e4e8c75644d84;hb=90bde110350493b1d07b12f692a829b4d2cab617;hp=f7d4654da66549c9a455695376710280968bdaf1;hpb=770f9c0e7e8eb3dc3a9e531210cbf29008e9a27d;p=fs%2Flustre-release.git diff --git a/lustre/llite/lloop.c b/lustre/llite/lloop.c index f7d4654..3b13aab 100644 --- a/lustre/llite/lloop.c +++ b/lustre/llite/lloop.c @@ -641,6 +641,7 @@ static int lo_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) { struct lloop_device *lo = bdev->bd_disk->private_data; + struct inode *inode = lo->lo_backing_file->f_dentry->d_inode; #else static int lo_ioctl(struct inode *inode, struct file *unused, unsigned int cmd, unsigned long arg) @@ -660,12 +661,14 @@ static int lo_ioctl(struct inode *inode, struct file *unused, } case LL_IOC_LLOOP_INFO: { - __u64 ino = 0; + struct lu_fid fid; if (lo->lo_state == LLOOP_BOUND) - ino = lo->lo_backing_file->f_dentry->d_inode->i_ino; + fid = ll_i2info(inode)->lli_fid; + else + fid_zero(&fid); - if (put_user(ino, (__u64 *)arg)) + if (copy_to_user((struct lu_fid *)arg, &fid, sizeof(fid))) err = -EFAULT; break; }