diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 8e686a427ce2e8e5e824419321f1f8f2dfe19acb..8cc941e5b3e152a7a9439385219a113698662876 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -310,6 +310,11 @@ static int __btrfs_run_defrag_inode(struct btrfs_fs_info *fs_info, goto cleanup; } + if (btrfs_root_refs(&inode_root->root_item) == 0) { + ret = -ENOENT; + goto cleanup; + } + key.objectid = defrag->ino; btrfs_set_key_type(&key, BTRFS_INODE_ITEM_KEY); key.offset = 0;