From ebc5d79e7f1bbe241fa96ec0fc3b61c1658b7ed5 Mon Sep 17 00:00:00 2001 From: Tomohiro Kusumi Date: Sun, 23 Aug 2015 20:53:50 +0900 Subject: [PATCH] sys/vfs/hammer: Don't fail to downgrade cursor 7ef2d7b should have placed end: before hammer_cursor_downgrade(cursor);. If hammer volume-del starts to reblock because of non-empty volume, and first reblocks data, but skips reblock for btree node as the node was not in that volume (data and btree node stored in different volume which is usually a rare case), then volume-del returns from hammer_reblock_helper() without donwgrading upgraded lock. This could happen only on volume-del, but not hammer reblock command since hammer reblock command never hits goto end;. --- sys/vfs/hammer/hammer_reblock.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/vfs/hammer/hammer_reblock.c b/sys/vfs/hammer/hammer_reblock.c index bba71d4c91..ca84068142 100644 --- a/sys/vfs/hammer/hammer_reblock.c +++ b/sys/vfs/hammer/hammer_reblock.c @@ -436,9 +436,8 @@ skip: } } } - - hammer_cursor_downgrade(cursor); end: + hammer_cursor_downgrade(cursor); return(error); } -- 2.41.0