Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[cascardo/linux.git] / fs / fhandle.c
index 6b08864..a48e4a1 100644 (file)
@@ -10,6 +10,7 @@
 #include <linux/personality.h>
 #include <asm/uaccess.h>
 #include "internal.h"
+#include "mount.h"
 
 static long do_sys_name_to_handle(struct path *path,
                                  struct file_handle __user *ufh,
@@ -24,8 +25,8 @@ static long do_sys_name_to_handle(struct path *path,
         * We need t make sure wether the file system
         * support decoding of the file handle
         */
-       if (!path->mnt->mnt_sb->s_export_op ||
-           !path->mnt->mnt_sb->s_export_op->fh_to_dentry)
+       if (!path->dentry->d_sb->s_export_op ||
+           !path->dentry->d_sb->s_export_op->fh_to_dentry)
                return -EOPNOTSUPP;
 
        if (copy_from_user(&f_handle, ufh, sizeof(struct file_handle)))
@@ -66,7 +67,8 @@ static long do_sys_name_to_handle(struct path *path,
        } else
                retval = 0;
        /* copy the mount id */
-       if (copy_to_user(mnt_id, &path->mnt->mnt_id, sizeof(*mnt_id)) ||
+       if (copy_to_user(mnt_id, &real_mount(path->mnt)->mnt_id,
+                        sizeof(*mnt_id)) ||
            copy_to_user(ufh, handle,
                         sizeof(struct file_handle) + handle_bytes))
                retval = -EFAULT;