Displaying 4 results from an estimated 4 matches for "__unlink_start_trans".
2011 Jun 09
2
[PATCH] Btrfs: turn to readonly if btrfs_start_transaction() fails
...t btrfs_orphan_cleanup(struct btrfs_root *root)
trans = btrfs_start_transaction(root, 0);
if (IS_ERR(trans)) {
ret = PTR_ERR(trans);
+ btrfs_abort_transaction(root, ret);
goto out;
}
btrfs_orphan_del(trans, inode);
@@ -2848,6 +2849,8 @@ static struct btrfs_trans_handle *__unlink_start_trans(struct inode *dir,
u64 dir_ino = btrfs_ino(dir);
trans = btrfs_start_transaction(root, 10);
+ if (IS_ERR(trans))
+ btrfs_abort_transaction(root, PTR_ERR(trans));
if (!IS_ERR(trans) || PTR_ERR(trans) != -ENOSPC)
return trans;
@@ -2874,6 +2877,7 @@ static struct btrfs_trans_handle *__un...
2012 Aug 01
7
[PATCH] Btrfs: barrier before waitqueue_active
We need an smb_mb() before waitqueue_active to avoid missing wakeups.
Before Mitch was hitting a deadlock between the ordered flushers and the
transaction commit because the ordered flushers were waiting for more refs
and were never woken up, so those smp_mb()''s are the most important.
Everything else I added for correctness sake and to avoid getting bitten by
this again somewhere else.
2012 Sep 13
0
[PATCH] btrfs: return EPERM upon rmdir on a subvolume
...andle *trans;
unsigned long nr = 0;
- if (inode->i_size > BTRFS_EMPTY_DIR_SIZE ||
- btrfs_ino(inode) == BTRFS_FIRST_FREE_OBJECTID)
+ if (inode->i_size > BTRFS_EMPTY_DIR_SIZE)
return -ENOTEMPTY;
+ if (btrfs_ino(inode) == BTRFS_FIRST_FREE_OBJECTID)
+ return -EPERM;
trans = __unlink_start_trans(dir, dentry);
if (IS_ERR(trans))
--
1.7.9
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
2012 Jun 21
0
[RFC PATCH V2] Btrfs: introduce extent buffer cache for each i-node
...- ret = btrfs_del_inode_ref(trans, root, name, name_len, ino,
+ ret = btrfs_del_inode_ref(trans, root, name, name_len, inode,
dir_ino, &index);
if (ret) {
printk(KERN_INFO "btrfs failed to delete reference to %.*s, "
@@ -2973,7 +2974,7 @@ static struct btrfs_trans_handle *__unlink_start_trans(struct inode *dir,
if (ret == 0 && S_ISREG(inode->i_mode)) {
ret = btrfs_lookup_file_extent(trans, root, path,
- ino, (u64)-1, 0);
+ inode, (u64)-1, 0);
if (ret < 0) {
err = ret;
goto out;
@@ -2989,8 +2990,8 @@ static struct btrfs_trans_handle *...