@@ -141,7 +141,8 @@ static int ecryptfs_do_unlink(struct inode *dir, struct dentry *dentry,
141
141
else if (d_unhashed (lower_dentry ))
142
142
rc = - EINVAL ;
143
143
else
144
- rc = vfs_unlink (lower_dir_inode , lower_dentry , NULL );
144
+ rc = vfs_unlink (& init_user_ns , lower_dir_inode , lower_dentry ,
145
+ NULL );
145
146
if (rc ) {
146
147
printk (KERN_ERR "Error in vfs_unlink; rc = [%d]\n" , rc );
147
148
goto out_unlock ;
@@ -180,7 +181,8 @@ ecryptfs_do_create(struct inode *directory_inode,
180
181
181
182
lower_dentry = ecryptfs_dentry_to_lower (ecryptfs_dentry );
182
183
lower_dir_dentry = lock_parent (lower_dentry );
183
- rc = vfs_create (d_inode (lower_dir_dentry ), lower_dentry , mode , true);
184
+ rc = vfs_create (& init_user_ns , d_inode (lower_dir_dentry ), lower_dentry ,
185
+ mode , true);
184
186
if (rc ) {
185
187
printk (KERN_ERR "%s: Failure to create dentry in lower fs; "
186
188
"rc = [%d]\n" , __func__ , rc );
@@ -190,7 +192,8 @@ ecryptfs_do_create(struct inode *directory_inode,
190
192
inode = __ecryptfs_get_inode (d_inode (lower_dentry ),
191
193
directory_inode -> i_sb );
192
194
if (IS_ERR (inode )) {
193
- vfs_unlink (d_inode (lower_dir_dentry ), lower_dentry , NULL );
195
+ vfs_unlink (& init_user_ns , d_inode (lower_dir_dentry ),
196
+ lower_dentry , NULL );
194
197
goto out_lock ;
195
198
}
196
199
fsstack_copy_attr_times (directory_inode , d_inode (lower_dir_dentry ));
@@ -436,8 +439,8 @@ static int ecryptfs_link(struct dentry *old_dentry, struct inode *dir,
436
439
dget (lower_old_dentry );
437
440
dget (lower_new_dentry );
438
441
lower_dir_dentry = lock_parent (lower_new_dentry );
439
- rc = vfs_link (lower_old_dentry , d_inode ( lower_dir_dentry ) ,
440
- lower_new_dentry , NULL );
442
+ rc = vfs_link (lower_old_dentry , & init_user_ns ,
443
+ d_inode ( lower_dir_dentry ), lower_new_dentry , NULL );
441
444
if (rc || d_really_is_negative (lower_new_dentry ))
442
445
goto out_lock ;
443
446
rc = ecryptfs_interpose (lower_new_dentry , new_dentry , dir -> i_sb );
@@ -481,7 +484,7 @@ static int ecryptfs_symlink(struct inode *dir, struct dentry *dentry,
481
484
strlen (symname ));
482
485
if (rc )
483
486
goto out_lock ;
484
- rc = vfs_symlink (d_inode (lower_dir_dentry ), lower_dentry ,
487
+ rc = vfs_symlink (& init_user_ns , d_inode (lower_dir_dentry ), lower_dentry ,
485
488
encoded_symname );
486
489
kfree (encoded_symname );
487
490
if (rc || d_really_is_negative (lower_dentry ))
@@ -507,7 +510,8 @@ static int ecryptfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode
507
510
508
511
lower_dentry = ecryptfs_dentry_to_lower (dentry );
509
512
lower_dir_dentry = lock_parent (lower_dentry );
510
- rc = vfs_mkdir (d_inode (lower_dir_dentry ), lower_dentry , mode );
513
+ rc = vfs_mkdir (& init_user_ns , d_inode (lower_dir_dentry ), lower_dentry ,
514
+ mode );
511
515
if (rc || d_really_is_negative (lower_dentry ))
512
516
goto out ;
513
517
rc = ecryptfs_interpose (lower_dentry , dentry , dir -> i_sb );
@@ -541,7 +545,7 @@ static int ecryptfs_rmdir(struct inode *dir, struct dentry *dentry)
541
545
else if (d_unhashed (lower_dentry ))
542
546
rc = - EINVAL ;
543
547
else
544
- rc = vfs_rmdir (lower_dir_inode , lower_dentry );
548
+ rc = vfs_rmdir (& init_user_ns , lower_dir_inode , lower_dentry );
545
549
if (!rc ) {
546
550
clear_nlink (d_inode (dentry ));
547
551
fsstack_copy_attr_times (dir , lower_dir_inode );
@@ -563,7 +567,8 @@ ecryptfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev
563
567
564
568
lower_dentry = ecryptfs_dentry_to_lower (dentry );
565
569
lower_dir_dentry = lock_parent (lower_dentry );
566
- rc = vfs_mknod (d_inode (lower_dir_dentry ), lower_dentry , mode , dev );
570
+ rc = vfs_mknod (& init_user_ns , d_inode (lower_dir_dentry ), lower_dentry ,
571
+ mode , dev );
567
572
if (rc || d_really_is_negative (lower_dentry ))
568
573
goto out ;
569
574
rc = ecryptfs_interpose (lower_dentry , dentry , dir -> i_sb );
@@ -621,10 +626,12 @@ ecryptfs_rename(struct inode *old_dir, struct dentry *old_dentry,
621
626
goto out_lock ;
622
627
}
623
628
624
- rd .old_dir = d_inode (lower_old_dir_dentry );
625
- rd .old_dentry = lower_old_dentry ;
626
- rd .new_dir = d_inode (lower_new_dir_dentry );
627
- rd .new_dentry = lower_new_dentry ;
629
+ rd .old_mnt_userns = & init_user_ns ;
630
+ rd .old_dir = d_inode (lower_old_dir_dentry );
631
+ rd .old_dentry = lower_old_dentry ;
632
+ rd .new_mnt_userns = & init_user_ns ;
633
+ rd .new_dir = d_inode (lower_new_dir_dentry );
634
+ rd .new_dentry = lower_new_dentry ;
628
635
rc = vfs_rename (& rd );
629
636
if (rc )
630
637
goto out_lock ;
0 commit comments