diff options
| -rw-r--r-- | fs/ecryptfs/main.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c index 7d3ed6bfcfa5..cbd4e18adb20 100644 --- a/fs/ecryptfs/main.c +++ b/fs/ecryptfs/main.c | |||
| @@ -483,6 +483,7 @@ out: | |||
| 483 | } | 483 | } |
| 484 | 484 | ||
| 485 | struct kmem_cache *ecryptfs_sb_info_cache; | 485 | struct kmem_cache *ecryptfs_sb_info_cache; |
| 486 | static struct file_system_type ecryptfs_fs_type; | ||
| 486 | 487 | ||
| 487 | /** | 488 | /** |
| 488 | * ecryptfs_read_super | 489 | * ecryptfs_read_super |
| @@ -503,6 +504,13 @@ static int ecryptfs_read_super(struct super_block *sb, const char *dev_name) | |||
| 503 | ecryptfs_printk(KERN_WARNING, "path_lookup() failed\n"); | 504 | ecryptfs_printk(KERN_WARNING, "path_lookup() failed\n"); |
| 504 | goto out; | 505 | goto out; |
| 505 | } | 506 | } |
| 507 | if (path.dentry->d_sb->s_type == &ecryptfs_fs_type) { | ||
| 508 | rc = -EINVAL; | ||
| 509 | printk(KERN_ERR "Mount on filesystem of type " | ||
| 510 | "eCryptfs explicitly disallowed due to " | ||
| 511 | "known incompatibilities\n"); | ||
| 512 | goto out_free; | ||
| 513 | } | ||
| 506 | ecryptfs_set_superblock_lower(sb, path.dentry->d_sb); | 514 | ecryptfs_set_superblock_lower(sb, path.dentry->d_sb); |
| 507 | sb->s_maxbytes = path.dentry->d_sb->s_maxbytes; | 515 | sb->s_maxbytes = path.dentry->d_sb->s_maxbytes; |
| 508 | sb->s_blocksize = path.dentry->d_sb->s_blocksize; | 516 | sb->s_blocksize = path.dentry->d_sb->s_blocksize; |
