diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-04-24 03:22:42 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-04-24 03:22:42 +0200 |
commit | 721b024bd47c1e4b995e7eeb6455b714b817ad60 (patch) | |
tree | 15e3374ad054cc9ecbea56a86c1ff0b3f94a3b1c /fs/dlm | |
parent | mm: fix s390 BUG by __set_page_dirty_no_writeback on swap (diff) | |
parent | dlm: fix QUECVT when convert queue is empty (diff) | |
download | linux-721b024bd47c1e4b995e7eeb6455b714b817ad60.tar.xz linux-721b024bd47c1e4b995e7eeb6455b714b817ad60.zip |
Merge tag 'dlm-fixes-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm
Pull dlm fixes from David Teigland:
"This includes one short patch fixing the behavior of the QUECVT flag,
which the gfs2 folks are waiting on."
* tag 'dlm-fixes-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
dlm: fix QUECVT when convert queue is empty
Diffstat (limited to 'fs/dlm')
-rw-r--r-- | fs/dlm/lock.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c index fa5c07d51dcc..4c58d4a3adc4 100644 --- a/fs/dlm/lock.c +++ b/fs/dlm/lock.c @@ -1737,6 +1737,18 @@ static int _can_be_granted(struct dlm_rsb *r, struct dlm_lkb *lkb, int now) return 1; /* + * Even if the convert is compat with all granted locks, + * QUECVT forces it behind other locks on the convert queue. + */ + + if (now && conv && (lkb->lkb_exflags & DLM_LKF_QUECVT)) { + if (list_empty(&r->res_convertqueue)) + return 1; + else + goto out; + } + + /* * The NOORDER flag is set to avoid the standard vms rules on grant * order. */ |