Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
Btrfs: call d_instantiate after all ops are setup
Btrfs: fix worker lock misuse in find_worker

+7 -5
+2 -1
fs/btrfs/async-thread.c
··· 563 563 struct list_head *fallback; 564 564 int ret; 565 565 566 - again: 567 566 spin_lock_irqsave(&workers->lock, flags); 567 + again: 568 568 worker = next_worker(workers); 569 569 570 570 if (!worker) { ··· 579 579 spin_unlock_irqrestore(&workers->lock, flags); 580 580 /* we're below the limit, start another worker */ 581 581 ret = __btrfs_start_workers(workers); 582 + spin_lock_irqsave(&workers->lock, flags); 582 583 if (ret) 583 584 goto fallback; 584 585 goto again;
+5 -4
fs/btrfs/inode.c
··· 4590 4590 int err = btrfs_add_link(trans, dir, inode, 4591 4591 dentry->d_name.name, dentry->d_name.len, 4592 4592 backref, index); 4593 - if (!err) { 4594 - d_instantiate(dentry, inode); 4595 - return 0; 4596 - } 4597 4593 if (err > 0) 4598 4594 err = -EEXIST; 4599 4595 return err; ··· 4651 4655 else { 4652 4656 init_special_inode(inode, inode->i_mode, rdev); 4653 4657 btrfs_update_inode(trans, root, inode); 4658 + d_instantiate(dentry, inode); 4654 4659 } 4655 4660 out_unlock: 4656 4661 nr = trans->blocks_used; ··· 4719 4722 inode->i_mapping->a_ops = &btrfs_aops; 4720 4723 inode->i_mapping->backing_dev_info = &root->fs_info->bdi; 4721 4724 BTRFS_I(inode)->io_tree.ops = &btrfs_extent_io_ops; 4725 + d_instantiate(dentry, inode); 4722 4726 } 4723 4727 out_unlock: 4724 4728 nr = trans->blocks_used; ··· 4777 4779 struct dentry *parent = dentry->d_parent; 4778 4780 err = btrfs_update_inode(trans, root, inode); 4779 4781 BUG_ON(err); 4782 + d_instantiate(dentry, inode); 4780 4783 btrfs_log_new_name(trans, inode, NULL, parent); 4781 4784 } 4782 4785 ··· 7244 7245 drop_inode = 1; 7245 7246 7246 7247 out_unlock: 7248 + if (!err) 7249 + d_instantiate(dentry, inode); 7247 7250 nr = trans->blocks_used; 7248 7251 btrfs_end_transaction_throttle(trans, root); 7249 7252 if (drop_inode) {