|
@@ -484,18 +484,12 @@ static int ecryptfs_read_super(struct super_block *sb, const char *dev_name)
|
|
|
struct vfsmount *lower_mnt;
|
|
|
|
|
|
memset(&nd, 0, sizeof(struct nameidata));
|
|
|
- rc = path_lookup(dev_name, LOOKUP_FOLLOW, &nd);
|
|
|
+ rc = path_lookup(dev_name, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &nd);
|
|
|
if (rc) {
|
|
|
ecryptfs_printk(KERN_WARNING, "path_lookup() failed\n");
|
|
|
goto out;
|
|
|
}
|
|
|
lower_root = nd.dentry;
|
|
|
- if (!lower_root->d_inode) {
|
|
|
- ecryptfs_printk(KERN_WARNING,
|
|
|
- "No directory to interpose on\n");
|
|
|
- rc = -ENOENT;
|
|
|
- goto out_free;
|
|
|
- }
|
|
|
lower_mnt = nd.mnt;
|
|
|
ecryptfs_set_superblock_lower(sb, lower_root->d_sb);
|
|
|
sb->s_maxbytes = lower_root->d_sb->s_maxbytes;
|