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

Seth Forshee seth.forshee at canonical.com
Mon Jul 21 12:18:54 UTC 2014


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 at canonical.com> 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.



More information about the lxc-devel mailing list