Re: [Ocfs2-devel] [PATCH 5/6] ocfs2: Avoid blocking in ocfs2_mark_lockres_freeing() in downconvert thread

2014-02-20 Thread Srinivas Eeda
I like the idea of dc_task handling queued basts in ocfs2_mark_lockres_freeing. I am wondering if we should call lockres->l_ops->post_unlock(osb, lockres) ? Would there be another node waiting for a bast response ? On 02/20/2014 07:18 AM, Jan Kara wrote: > If we are dropping last inode referenc

Re: [Ocfs2-devel] [PATCH 2/6] ocfs2: Move dquot_initialize() in ocfs2_delete_inode() somewhat later

2014-02-20 Thread Srinivas Eeda
looks good to me Reviewed-by: Srinivas Eeda On 02/20/2014 07:18 AM, Jan Kara wrote: > Move dquot_initalize() call in ocfs2_delete_inode() after the moment we > verify inode is actually a sane one to delete. We certainly don't want > to initialize quota for system inodes etc. This also avoids cal

Re: [Ocfs2-devel] [PATCH 4/6] ocfs2: Implement delayed dropping of last dquot reference

2014-02-20 Thread Srinivas Eeda
looks good to me Reviewed-by: Srinivas Eeda On 02/20/2014 07:18 AM, Jan Kara wrote: > We cannot drop last dquot reference from downconvert thread as that > creates the following deadlock: > > NODE 1 NODE2 > holds dentry lock for 'foo' > holds inode lock for GLOBAL

Re: [Ocfs2-devel] [PATCH 1/6] ocfs2: Remove OCFS2_INODE_SKIP_DELETE flag

2014-02-20 Thread Srinivas Eeda
Reviewed-by: Srinivas Eeda On 02/20/2014 07:18 AM, Jan Kara wrote: > The flag was never set, delete it. > > Signed-off-by: Jan Kara > --- > fs/ocfs2/inode.c | 6 -- > fs/ocfs2/inode.h | 8 +++- > fs/ocfs2/journal.c | 6 -- > 3 files changed, 3 insertions(+), 17 deletions(-)

Re: [Ocfs2-devel] [PATCH 3/6] quota: Provide function to grab quota structure reference

2014-02-20 Thread Srinivas Eeda
looks good to me Reviewed-by: Srinivas Eeda On 02/20/2014 07:18 AM, Jan Kara wrote: > Provide dqgrab() function to get quota structure reference when we are > sure it already has at least one active reference. Make use of this > function inside quota code. > > Signed-off-by: Jan Kara > --- > f

Re: [Ocfs2-devel] [PATCH 0/6 v2] ocfs2: Avoid pending orphaned inodes

2014-02-20 Thread Srinivas Eeda
Hi Jan, thanks a lot for these patches. They all look good to me ... I just have one question on patch 5 Thanks, --Srini On 02/20/2014 07:18 AM, Jan Kara wrote: >Hello, > >here is a second version of my patchset to solve a deadlocks when we do not > defer dropping of inode reference fro

[Ocfs2-devel] 答复: [Ocfs2-users] Hi everyone, is it an issue? The host is blocked as the issue created. Thanks a lot.

2014-02-20 Thread Guozhonghua
Hi Marty, It is that the latest one host which run fio tools, and the host is frequently receive the stack trace and fenced, other hosts' IO lock up which is in the OCFS2 cluster at the same time. We will try the new kernel. Thanks a lot. Guozhonghua -邮件原件- 发件人: Marty Sweet [mailto:m

Re: [Ocfs2-devel] [Ocfs2-users] Hi everyone, is it an issue? The host is blocked as the issue created. Thanks a lot.

2014-02-20 Thread Marty Sweet
Hi, By the looks of the call-trace this looks like an issue with communicating with the iSCSI target. I run 6 nodes with OCFS2 over Fibre Channel on Ubuntu 12.04 Linux 3.5 and Linux 3.13 (VM Cluster and Samba Cluster). Before investigating this any further I would advise upgrading your kernel to

[Ocfs2-devel] Hi everyone, is it an issue? The host is blocked as the issue created. Thanks a lot.

2014-02-20 Thread Guozhonghua
Hi everyone, as we test the performance of the ocfs2 with fio. As the test case running, one of host of ocfs2 cluster will be blocked a small time and restart sooner. The test environment is that there are six host sharing one iSCSI LUN which capacity is about 1T and it is formatted with ocfs2,

[Ocfs2-devel] [PATCH] quota: Fix race between dqput() and dquot_scan_active()

2014-02-20 Thread Jan Kara
Currently last dqput() can race with dquot_scan_active() causing it to call callback for an already deactivated dquot. The race is as follows: CPU1CPU2 dqput() spin_lock(&dq_list_lock); if (atomic_read(&dquot->dq_count) > 1) { - not taken if (

[Ocfs2-devel] [PATCH 3/6] quota: Provide function to grab quota structure reference

2014-02-20 Thread Jan Kara
Provide dqgrab() function to get quota structure reference when we are sure it already has at least one active reference. Make use of this function inside quota code. Signed-off-by: Jan Kara --- fs/quota/dquot.c | 4 ++-- include/linux/quotaops.h | 8 2 files changed, 10 inserti

[Ocfs2-devel] [PATCH 1/6] ocfs2: Remove OCFS2_INODE_SKIP_DELETE flag

2014-02-20 Thread Jan Kara
The flag was never set, delete it. Signed-off-by: Jan Kara --- fs/ocfs2/inode.c | 6 -- fs/ocfs2/inode.h | 8 +++- fs/ocfs2/journal.c | 6 -- 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c index f29a90fde619..b4baaefe4dd4 10064

[Ocfs2-devel] [PATCH 5/6] ocfs2: Avoid blocking in ocfs2_mark_lockres_freeing() in downconvert thread

2014-02-20 Thread Jan Kara
If we are dropping last inode reference from downconvert thread, we will end up calling ocfs2_mark_lockres_freeing() which can block if the lock we are freeing is queued thus creating an A-A deadlock. Luckily, since we are the downconvert thread, we can immediately dequeue the lock and thus avoid w

[Ocfs2-devel] [PATCH 2/6] ocfs2: Move dquot_initialize() in ocfs2_delete_inode() somewhat later

2014-02-20 Thread Jan Kara
Move dquot_initalize() call in ocfs2_delete_inode() after the moment we verify inode is actually a sane one to delete. We certainly don't want to initialize quota for system inodes etc. This also avoids calling into quota code from downconvert thread. Add more details into the comment why bailing

[Ocfs2-devel] [PATCH 4/6] ocfs2: Implement delayed dropping of last dquot reference

2014-02-20 Thread Jan Kara
We cannot drop last dquot reference from downconvert thread as that creates the following deadlock: NODE 1 NODE2 holds dentry lock for 'foo' holds inode lock for GLOBAL_BITMAP_SYSTEM_INODE dquot_initialize(bar)

[Ocfs2-devel] [PATCH 0/6 v2] ocfs2: Avoid pending orphaned inodes

2014-02-20 Thread Jan Kara
Hello, here is a second version of my patchset to solve a deadlocks when we do not defer dropping of inode reference from downconvert worker. I have tested the patches (also with lockdep enabled) and they seem to work fine. Comments are welcome!

[Ocfs2-devel] [PATCH 6/6] ocfs2: Revert iput deferring code in ocfs2_drop_dentry_lock

2014-02-20 Thread Jan Kara
From: Goldwyn Rodrigues The following patches are reverted in this patch because these patches caused performance regression in the remote unlink() calls. ea455f8ab68338ba69f5d3362b342c115bea8e13 - ocfs2: Push out dropping of dentry lock to ocfs2_wq f7b1aa69be138ad9d7d3f31fa56f4c9407f56b6a - ocf

[Ocfs2-devel] [PATCH] fsck.ocfs2: Do not complain about oversized quota files

2014-02-20 Thread Jan Kara
Quota files can have blocks beyond i_size. This is correct because quota code reserves these blocks to allow for extension of quota files without the need for allocation. So make fsck.ocfs2 not complain about them. Signed-off-by: Jan Kara --- fsck.ocfs2/pass1.c | 7 +++ 1 file changed, 7 ins

[Ocfs2-devel] [PATCH V2] ocfs2: dlm: fix recovery hung

2014-02-20 Thread Junxiao Bi
There is a race window in dlm_do_recovery() between dlm_remaster_locks() and dlm_reset_recovery() when the recovery master nearly finish the recovery process for a dead node. After the master sends FINALIZE_RECO message in dlm_remaster_locks(), another node may become the recovery master for anothe

[Ocfs2-devel] [PATCH] ocfs2: Fix quota file corruption

2014-02-20 Thread Jan Kara
Global quota files are accessed from different nodes. Thus we cannot cache offset of quota structure in the quota file after we drop our node reference count to it because after that moment quota structure may be freed and reallocated elsewhere by a different node resulting in corruption of quota f