Lines Matching refs:defrag
81 struct inode_defrag *defrag) in __btrfs_add_inode_defrag() argument
94 ret = __compare_inode_defrag(defrag, entry); in __btrfs_add_inode_defrag()
104 if (defrag->transid < entry->transid) in __btrfs_add_inode_defrag()
105 entry->transid = defrag->transid; in __btrfs_add_inode_defrag()
106 if (defrag->last_offset > entry->last_offset) in __btrfs_add_inode_defrag()
107 entry->last_offset = defrag->last_offset; in __btrfs_add_inode_defrag()
112 rb_link_node(&defrag->rb_node, parent, p); in __btrfs_add_inode_defrag()
113 rb_insert_color(&defrag->rb_node, &fs_info->defrag_inodes); in __btrfs_add_inode_defrag()
137 struct inode_defrag *defrag; in btrfs_add_inode_defrag() local
152 defrag = kmem_cache_zalloc(btrfs_inode_defrag_cachep, GFP_NOFS); in btrfs_add_inode_defrag()
153 if (!defrag) in btrfs_add_inode_defrag()
156 defrag->ino = btrfs_ino(inode); in btrfs_add_inode_defrag()
157 defrag->transid = transid; in btrfs_add_inode_defrag()
158 defrag->root = root->root_key.objectid; in btrfs_add_inode_defrag()
167 ret = __btrfs_add_inode_defrag(inode, defrag); in btrfs_add_inode_defrag()
169 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_add_inode_defrag()
171 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_add_inode_defrag()
183 struct inode_defrag *defrag) in btrfs_requeue_inode_defrag() argument
196 ret = __btrfs_add_inode_defrag(inode, defrag); in btrfs_requeue_inode_defrag()
202 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_requeue_inode_defrag()
252 struct inode_defrag *defrag; in btrfs_cleanup_defrag_inodes() local
259 defrag = rb_entry(node, struct inode_defrag, rb_node); in btrfs_cleanup_defrag_inodes()
260 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_cleanup_defrag_inodes()
272 struct inode_defrag *defrag) in __btrfs_run_defrag_inode() argument
283 key.objectid = defrag->root; in __btrfs_run_defrag_inode()
295 key.objectid = defrag->ino; in __btrfs_run_defrag_inode()
309 range.start = defrag->last_offset; in __btrfs_run_defrag_inode()
312 num_defrag = btrfs_defrag_file(inode, NULL, &range, defrag->transid, in __btrfs_run_defrag_inode()
321 defrag->last_offset = range.start; in __btrfs_run_defrag_inode()
322 btrfs_requeue_inode_defrag(BTRFS_I(inode), defrag); in __btrfs_run_defrag_inode()
323 } else if (defrag->last_offset && !defrag->cycled) { in __btrfs_run_defrag_inode()
329 defrag->last_offset = 0; in __btrfs_run_defrag_inode()
330 defrag->cycled = 1; in __btrfs_run_defrag_inode()
331 btrfs_requeue_inode_defrag(BTRFS_I(inode), defrag); in __btrfs_run_defrag_inode()
333 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in __btrfs_run_defrag_inode()
340 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in __btrfs_run_defrag_inode()
350 struct inode_defrag *defrag; in btrfs_run_defrag_inodes() local
365 defrag = btrfs_pick_defrag_inode(fs_info, root_objectid, in btrfs_run_defrag_inodes()
367 if (!defrag) { in btrfs_run_defrag_inodes()
377 first_ino = defrag->ino + 1; in btrfs_run_defrag_inodes()
378 root_objectid = defrag->root; in btrfs_run_defrag_inodes()
380 __btrfs_run_defrag_inode(fs_info, defrag); in btrfs_run_defrag_inodes()