Lines Matching refs:defrag

96 				    struct inode_defrag *defrag)  in __btrfs_add_inode_defrag()  argument
109 ret = __compare_inode_defrag(defrag, entry); in __btrfs_add_inode_defrag()
119 if (defrag->transid < entry->transid) in __btrfs_add_inode_defrag()
120 entry->transid = defrag->transid; in __btrfs_add_inode_defrag()
121 if (defrag->last_offset > entry->last_offset) in __btrfs_add_inode_defrag()
122 entry->last_offset = defrag->last_offset; in __btrfs_add_inode_defrag()
127 rb_link_node(&defrag->rb_node, parent, p); in __btrfs_add_inode_defrag()
128 rb_insert_color(&defrag->rb_node, &root->fs_info->defrag_inodes); in __btrfs_add_inode_defrag()
151 struct inode_defrag *defrag; in btrfs_add_inode_defrag() local
166 defrag = kmem_cache_zalloc(btrfs_inode_defrag_cachep, GFP_NOFS); in btrfs_add_inode_defrag()
167 if (!defrag) in btrfs_add_inode_defrag()
170 defrag->ino = btrfs_ino(inode); in btrfs_add_inode_defrag()
171 defrag->transid = transid; in btrfs_add_inode_defrag()
172 defrag->root = root->root_key.objectid; in btrfs_add_inode_defrag()
181 ret = __btrfs_add_inode_defrag(inode, defrag); in btrfs_add_inode_defrag()
183 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_add_inode_defrag()
185 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_add_inode_defrag()
197 struct inode_defrag *defrag) in btrfs_requeue_inode_defrag() argument
210 ret = __btrfs_add_inode_defrag(inode, defrag); in btrfs_requeue_inode_defrag()
216 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_requeue_inode_defrag()
266 struct inode_defrag *defrag; in btrfs_cleanup_defrag_inodes() local
273 defrag = rb_entry(node, struct inode_defrag, rb_node); in btrfs_cleanup_defrag_inodes()
274 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_cleanup_defrag_inodes()
286 struct inode_defrag *defrag) in __btrfs_run_defrag_inode() argument
297 key.objectid = defrag->root; in __btrfs_run_defrag_inode()
309 key.objectid = defrag->ino; in __btrfs_run_defrag_inode()
323 range.start = defrag->last_offset; in __btrfs_run_defrag_inode()
326 num_defrag = btrfs_defrag_file(inode, NULL, &range, defrag->transid, in __btrfs_run_defrag_inode()
335 defrag->last_offset = range.start; in __btrfs_run_defrag_inode()
336 btrfs_requeue_inode_defrag(inode, defrag); in __btrfs_run_defrag_inode()
337 } else if (defrag->last_offset && !defrag->cycled) { in __btrfs_run_defrag_inode()
343 defrag->last_offset = 0; in __btrfs_run_defrag_inode()
344 defrag->cycled = 1; in __btrfs_run_defrag_inode()
345 btrfs_requeue_inode_defrag(inode, defrag); in __btrfs_run_defrag_inode()
347 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in __btrfs_run_defrag_inode()
354 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in __btrfs_run_defrag_inode()
364 struct inode_defrag *defrag; in btrfs_run_defrag_inodes() local
379 defrag = btrfs_pick_defrag_inode(fs_info, root_objectid, in btrfs_run_defrag_inodes()
381 if (!defrag) { in btrfs_run_defrag_inodes()
391 first_ino = defrag->ino + 1; in btrfs_run_defrag_inodes()
392 root_objectid = defrag->root; in btrfs_run_defrag_inodes()
394 __btrfs_run_defrag_inode(fs_info, defrag); in btrfs_run_defrag_inodes()