[PATCH] ecryptfs: lower root result must be adirectory

- Currently after path_lookup succeed we dot't have any guarantie what
it is DIR. This must be explicitly demanded.
- path_lookup can't return negative dentry, So inode check is useless.

Signed-off-by: Dmitriy Monakhov <dmonakhov@openvz.org>
Acked-by: Michael Halcrow <mhalcrow@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by Dmitriy Monakhov and committed by Linus Torvalds 82b16528 a5f5e43e

+1 -7
+1 -7
fs/ecryptfs/main.c
··· 484 484 struct vfsmount *lower_mnt; 485 485 486 486 memset(&nd, 0, sizeof(struct nameidata)); 487 - rc = path_lookup(dev_name, LOOKUP_FOLLOW, &nd); 487 + rc = path_lookup(dev_name, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &nd); 488 488 if (rc) { 489 489 ecryptfs_printk(KERN_WARNING, "path_lookup() failed\n"); 490 490 goto out; 491 491 } 492 492 lower_root = nd.dentry; 493 - if (!lower_root->d_inode) { 494 - ecryptfs_printk(KERN_WARNING, 495 - "No directory to interpose on\n"); 496 - rc = -ENOENT; 497 - goto out_free; 498 - } 499 493 lower_mnt = nd.mnt; 500 494 ecryptfs_set_superblock_lower(sb, lower_root->d_sb); 501 495 sb->s_maxbytes = lower_root->d_sb->s_maxbytes;