Lines Matching refs:defrag
82 struct inode_defrag *defrag) in __btrfs_add_inode_defrag() argument
95 ret = __compare_inode_defrag(defrag, entry); in __btrfs_add_inode_defrag()
105 if (defrag->transid < entry->transid) in __btrfs_add_inode_defrag()
106 entry->transid = defrag->transid; in __btrfs_add_inode_defrag()
107 if (defrag->last_offset > entry->last_offset) in __btrfs_add_inode_defrag()
108 entry->last_offset = defrag->last_offset; in __btrfs_add_inode_defrag()
113 rb_link_node(&defrag->rb_node, parent, p); in __btrfs_add_inode_defrag()
114 rb_insert_color(&defrag->rb_node, &fs_info->defrag_inodes); in __btrfs_add_inode_defrag()
138 struct inode_defrag *defrag; in btrfs_add_inode_defrag() local
153 defrag = kmem_cache_zalloc(btrfs_inode_defrag_cachep, GFP_NOFS); in btrfs_add_inode_defrag()
154 if (!defrag) in btrfs_add_inode_defrag()
157 defrag->ino = btrfs_ino(inode); in btrfs_add_inode_defrag()
158 defrag->transid = transid; in btrfs_add_inode_defrag()
159 defrag->root = root->root_key.objectid; in btrfs_add_inode_defrag()
168 ret = __btrfs_add_inode_defrag(inode, defrag); in btrfs_add_inode_defrag()
170 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_add_inode_defrag()
172 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_add_inode_defrag()
184 struct inode_defrag *defrag) in btrfs_requeue_inode_defrag() argument
197 ret = __btrfs_add_inode_defrag(inode, defrag); in btrfs_requeue_inode_defrag()
203 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_requeue_inode_defrag()
253 struct inode_defrag *defrag; in btrfs_cleanup_defrag_inodes() local
260 defrag = rb_entry(node, struct inode_defrag, rb_node); in btrfs_cleanup_defrag_inodes()
261 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_cleanup_defrag_inodes()
273 struct inode_defrag *defrag) in __btrfs_run_defrag_inode() argument
284 key.objectid = defrag->root; in __btrfs_run_defrag_inode()
296 key.objectid = defrag->ino; in __btrfs_run_defrag_inode()
310 range.start = defrag->last_offset; in __btrfs_run_defrag_inode()
313 num_defrag = btrfs_defrag_file(inode, NULL, &range, defrag->transid, in __btrfs_run_defrag_inode()
322 defrag->last_offset = range.start; in __btrfs_run_defrag_inode()
323 btrfs_requeue_inode_defrag(BTRFS_I(inode), defrag); in __btrfs_run_defrag_inode()
324 } else if (defrag->last_offset && !defrag->cycled) { in __btrfs_run_defrag_inode()
330 defrag->last_offset = 0; in __btrfs_run_defrag_inode()
331 defrag->cycled = 1; in __btrfs_run_defrag_inode()
332 btrfs_requeue_inode_defrag(BTRFS_I(inode), defrag); in __btrfs_run_defrag_inode()
334 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in __btrfs_run_defrag_inode()
341 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in __btrfs_run_defrag_inode()
351 struct inode_defrag *defrag; in btrfs_run_defrag_inodes() local
366 defrag = btrfs_pick_defrag_inode(fs_info, root_objectid, in btrfs_run_defrag_inodes()
368 if (!defrag) { in btrfs_run_defrag_inodes()
378 first_ino = defrag->ino + 1; in btrfs_run_defrag_inodes()
379 root_objectid = defrag->root; in btrfs_run_defrag_inodes()
381 __btrfs_run_defrag_inode(fs_info, defrag); in btrfs_run_defrag_inodes()