trans->block_rsv = &block_rsv;
        trans->bytes_reserved = block_rsv.size;
 
-       btrfs_record_snapshot_destroy(trans, dir);
+       btrfs_record_snapshot_destroy(trans, BTRFS_I(dir));
 
        ret = btrfs_unlink_subvol(trans, root, dir,
                                dest->root_key.objectid,
 
  * parent root and tree of tree roots trees, etc) are done.
  */
 void btrfs_record_snapshot_destroy(struct btrfs_trans_handle *trans,
-                                  struct inode *dir)
+                                  struct btrfs_inode *dir)
 {
-       mutex_lock(&BTRFS_I(dir)->log_mutex);
-       BTRFS_I(dir)->last_unlink_trans = trans->transid;
-       mutex_unlock(&BTRFS_I(dir)->log_mutex);
+       mutex_lock(&dir->log_mutex);
+       dir->last_unlink_trans = trans->transid;
+       mutex_unlock(&dir->log_mutex);
 }
 
 /*
 
                             struct btrfs_inode *dir, struct btrfs_inode *inode,
                             int for_rename);
 void btrfs_record_snapshot_destroy(struct btrfs_trans_handle *trans,
-                                  struct inode *dir);
+                                  struct btrfs_inode *dir);
 int btrfs_log_new_name(struct btrfs_trans_handle *trans,
                        struct inode *inode, struct inode *old_dir,
                        struct dentry *parent);