search for: num_writers

Displaying 9 results from an estimated 9 matches for "num_writers".

2020 Jul 14
7
[Bug 3192] New: openssh-8.2 & openssl-1.1.1d error: dereferencing pointer to incomplete type Not found struct BIO , bio->num_write
https://bugzilla.mindrot.org/show_bug.cgi?id=3192 Bug ID: 3192 Summary: openssh-8.2 & openssl-1.1.1d error: dereferencing pointer to incomplete type Not found struct BIO , bio->num_write Product: Portable OpenSSH Version: 8.2p1 Hardware: Other OS: Linux Status: NEW
2010 Oct 26
0
[PATCH v2] Btrfs: fix deadlock in btrfs_commit_transaction
We calculate timeout (either 1 or MAX_SCHEDULE_TIMEOUT) based on whether num_writers > 1 or should_grow at the top of the loop. Then, much much later, we wait for that timeout if either num_writers or should_grow is true. However, it''s possible for a racing process (calling btrfs_end_transaction()) to decrement num_writers such that we wait forever instead of for 1....
2010 Oct 25
14
[PATCH 0/6] Btrfs commit fixes, async subvol operations
Hi Chris, This is the extent of my current queue of Btrfs snapshot/subvol/commit stuff. Most of these were posted several months ago. Can be sent upstream during this merge window? Not having this functionality is becoming a bit of a roadblock for our efforts to keep the Ceph data in a consistent state. These patches are also available from
2007 Aug 09
1
[RFC] All my fsync changes
...t;fs_info->running_transaction; if (!cur_trans) { + int ret; cur_trans = kmem_cache_alloc(btrfs_transaction_cachep, GFP_NOFS); total_trans++; BUG_ON(!cur_trans); root->fs_info->generation++; root->fs_info->running_transaction = cur_trans; - cur_trans->num_writers = 0; + cur_trans->num_writers = 1; + cur_trans->num_joined = 0; cur_trans->transid = root->fs_info->generation; init_waitqueue_head(&cur_trans->writer_wait); init_waitqueue_head(&cur_trans->commit_wait); @@ -65,8 +70,15 @@ static int join_transaction(struct b...
2012 Dec 18
1
[Qemu-devel] [PATCH v6 12/12] virtio-blk: add x-data-plane=on|off performance feature
On Tue, Dec 18, 2012 at 03:57:17PM +0100, Stefan Hajnoczi wrote: > > > @@ -407,6 +409,14 @@ static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) > > > .num_writes = 0, > > > }; > > > > > > + /* Some guests kick before setting VIRTIO_CONFIG_S_DRIVER_OK so start > > > + * dataplane here instead of waiting
2012 Dec 18
1
[Qemu-devel] [PATCH v6 12/12] virtio-blk: add x-data-plane=on|off performance feature
On Tue, Dec 18, 2012 at 03:57:17PM +0100, Stefan Hajnoczi wrote: > > > @@ -407,6 +409,14 @@ static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) > > > .num_writes = 0, > > > }; > > > > > > + /* Some guests kick before setting VIRTIO_CONFIG_S_DRIVER_OK so start > > > + * dataplane here instead of waiting
2010 Apr 19
0
[PATCH 08/12] Btrfs: Introduce global metadata reservation
...ransaction(trans, root); + else + wake_up_process(info->transaction_kthread); + } + mutex_lock(&info->trans_mutex); - cur_trans = info->running_transaction; - WARN_ON(cur_trans != trans->transaction); + WARN_ON(cur_trans != info->running_transaction); WARN_ON(cur_trans->num_writers < 1); cur_trans->num_writers--; @@ -663,30 +699,30 @@ static noinline int commit_fs_roots(stru int btrfs_defrag_root(struct btrfs_root *root, int cacheonly) { struct btrfs_fs_info *info = root->fs_info; - int ret; struct btrfs_trans_handle *trans; + int ret; unsigned long nr;...
2011 Mar 23
0
[PATCH] Btrfs: cleanup some BUG_ON()
...1:28:09.000000000 +0900 @@ -57,7 +57,8 @@ static noinline int join_transaction(str if (!cur_trans) { cur_trans = kmem_cache_alloc(btrfs_transaction_cachep, GFP_NOFS); - BUG_ON(!cur_trans); + if (!cur_trans) + return -ENOMEM; root->fs_info->generation++; cur_trans->num_writers = 1; cur_trans->num_joined = 0; @@ -195,7 +196,11 @@ again: wait_current_trans(root); ret = join_transaction(root); - BUG_ON(ret); + if (ret < 0) { + if (type != TRANS_JOIN_NOLOCK) + mutex_unlock(&root->fs_info->trans_mutex); + return ERR_PTR(ret); + } cur_trans =...
2009 Aug 24
0
[PATCH] Btrfs: proper metadata -ENOSPC handling
...handle *trans, break; } count++; - } + } while (!nested_trans && count < 4); mutex_lock(&info->trans_mutex); cur_trans = info->running_transaction; @@ -314,12 +574,32 @@ static int __btrfs_end_transaction(struct btrfs_trans_handle *trans, WARN_ON(cur_trans->num_writers < 1); cur_trans->num_writers--; + /* + * XXX this needs to be removed once we shake out the bugs with the + * block accounting stuff, this is only supposed to catch a buggy case, + * so ideally this should never happen once we are done with this stuff. + */ + if (trans->bytes_used...