Re: [PATCH] ovl: check dentry positiveness in ovl_cleanup_whiteouts()

From: Miklos Szeredi
Date: Wed Dec 09 2015 - 16:51:41 EST


On Mon, Nov 16, 2015 at 4:44 PM, Konstantin Khlebnikov
<khlebnikov@xxxxxxxxxxxxxx> wrote:
> This patch fixes kernel crash at removing directory which contains
> whiteouts from lower layers.
>
> Cache of directory content passed as "list" contains entries from all
> layers, including whiteouts from lower layers. So, lookup in upper dir
> (moved into work at this stage) will return negative entry. Plus this
> cache is filled long before and we can race with external removal.
>
> Example:
> mkdir -p lower0/dir lower1/dir upper work overlay
> touch lower0/dir/a lower0/dir/b
> mknod lower1/dir/a c 0 0
> mount -t overlay none overlay -o lowerdir=lower1:lower0,upperdir=upper,workdir=work
> rm -fr overlay/dir
>
> Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
> Cc: Stable <stable@xxxxxxxxxxxxxxx> # 3.18+

Thanks, applied.

Miklos
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/