@@ -4701,32 +4701,33 @@ int btrfs_delete_subvolume(struct btrfs_inode *dir, struct dentry *dentry)
4701
4701
return ret ;
4702
4702
}
4703
4703
4704
- static int btrfs_rmdir (struct inode * dir , struct dentry * dentry )
4704
+ static int btrfs_rmdir (struct inode * vfs_dir , struct dentry * dentry )
4705
4705
{
4706
- struct inode * inode = d_inode (dentry );
4707
- struct btrfs_fs_info * fs_info = BTRFS_I (inode )-> root -> fs_info ;
4706
+ struct btrfs_inode * dir = BTRFS_I (vfs_dir );
4707
+ struct btrfs_inode * inode = BTRFS_I (d_inode (dentry ));
4708
+ struct btrfs_fs_info * fs_info = inode -> root -> fs_info ;
4708
4709
int ret = 0 ;
4709
4710
struct btrfs_trans_handle * trans ;
4710
4711
struct fscrypt_name fname ;
4711
4712
4712
- if (inode -> i_size > BTRFS_EMPTY_DIR_SIZE )
4713
+ if (inode -> vfs_inode . i_size > BTRFS_EMPTY_DIR_SIZE )
4713
4714
return - ENOTEMPTY ;
4714
- if (btrfs_ino (BTRFS_I ( inode ) ) == BTRFS_FIRST_FREE_OBJECTID ) {
4715
+ if (btrfs_ino (inode ) == BTRFS_FIRST_FREE_OBJECTID ) {
4715
4716
if (unlikely (btrfs_fs_incompat (fs_info , EXTENT_TREE_V2 ))) {
4716
4717
btrfs_err (fs_info ,
4717
4718
"extent tree v2 doesn't support snapshot deletion yet" );
4718
4719
return - EOPNOTSUPP ;
4719
4720
}
4720
- return btrfs_delete_subvolume (BTRFS_I ( dir ) , dentry );
4721
+ return btrfs_delete_subvolume (dir , dentry );
4721
4722
}
4722
4723
4723
- ret = fscrypt_setup_filename (dir , & dentry -> d_name , 1 , & fname );
4724
+ ret = fscrypt_setup_filename (vfs_dir , & dentry -> d_name , 1 , & fname );
4724
4725
if (ret )
4725
4726
return ret ;
4726
4727
4727
4728
/* This needs to handle no-key deletions later on */
4728
4729
4729
- trans = __unlink_start_trans (BTRFS_I ( dir ) );
4730
+ trans = __unlink_start_trans (dir );
4730
4731
if (IS_ERR (trans )) {
4731
4732
ret = PTR_ERR (trans );
4732
4733
goto out_notrans ;
@@ -4746,22 +4747,22 @@ static int btrfs_rmdir(struct inode *dir, struct dentry *dentry)
4746
4747
* This is because we can't unlink other roots when replaying the dir
4747
4748
* deletes for directory foo.
4748
4749
*/
4749
- if (BTRFS_I ( inode ) -> last_unlink_trans >= trans -> transid )
4750
- btrfs_record_snapshot_destroy (trans , BTRFS_I ( dir ) );
4750
+ if (inode -> last_unlink_trans >= trans -> transid )
4751
+ btrfs_record_snapshot_destroy (trans , dir );
4751
4752
4752
- if (unlikely (btrfs_ino (BTRFS_I ( inode ) ) == BTRFS_EMPTY_SUBVOL_DIR_OBJECTID )) {
4753
- ret = btrfs_unlink_subvol (trans , BTRFS_I ( dir ) , dentry );
4753
+ if (unlikely (btrfs_ino (inode ) == BTRFS_EMPTY_SUBVOL_DIR_OBJECTID )) {
4754
+ ret = btrfs_unlink_subvol (trans , dir , dentry );
4754
4755
goto out ;
4755
4756
}
4756
4757
4757
- ret = btrfs_orphan_add (trans , BTRFS_I ( inode ) );
4758
+ ret = btrfs_orphan_add (trans , inode );
4758
4759
if (ret )
4759
4760
goto out ;
4760
4761
4761
4762
/* now the directory is empty */
4762
- ret = btrfs_unlink_inode (trans , BTRFS_I ( dir ), BTRFS_I ( inode ) , & fname .disk_name );
4763
+ ret = btrfs_unlink_inode (trans , dir , inode , & fname .disk_name );
4763
4764
if (!ret )
4764
- btrfs_i_size_write (BTRFS_I ( inode ) , 0 );
4765
+ btrfs_i_size_write (inode , 0 );
4765
4766
out :
4766
4767
btrfs_end_transaction (trans );
4767
4768
out_notrans :
0 commit comments