Re: [PATCH 1/3] fuse/dev: Fix unbalanced calls to kunmap_atomic() during splice I/O

From: Seth Forshee
Date: Mon Jul 21 2014 - 08:20:04 EST


On Fri, Jul 18, 2014 at 05:21:55PM +0200, Miklos Szeredi wrote:
> On Mon, Jul 14, 2014 at 9:18 PM, Seth Forshee
> <seth.forshee@xxxxxxxxxxxxx> wrote:
> > fuse_copy_finish() assumes that mapaddr in fuse_copy_state refers
> > to a valid mapping if currbuf is non-NULL, but this isn't always
> > true when moving pages for splice I/O. This results in an
> > unbalanced call to kunmap_atomic() and thus an unbalanced
> > decrement of the preempt count. Avoid this by checking that
> > mapaddr is non-NULL before calling kunmap_atomic().
>
> I guess this is obsoleted by:
>
> c55a01d360af fuse: avoid scheduling while atomic
>
> which moves the kmap/kunmap closer to the actual use of the mapping.
>
> Can you please verify?

Yes, that commit does seem to fix the problem.

--
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/