If given buffer size is zero, we forget to rcu_read_unlock() on error path.
Cc: [email protected] Cc: Al Viro <[email protected]> Signed-off-by: Denys Vlasenko <[email protected]> --- fs/dcache.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/dcache.c b/fs/dcache.c index cb4a106..24a01fc 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -3127,8 +3127,11 @@ restart: end = buf + buflen; len = buflen; prepend(&end, &len, "\0", 1); - if (buflen < 1) + if (buflen < 1) { + if (!(seq & 1)) + rcu_read_unlock(); goto Elong; + } /* Get '/' right */ retval = end-1; *retval = '/'; -- 1.8.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

