[Virtio-fs] [PATCH 9/9] fuse: fix deadlock in __fuse_file_fallocate()
Liu Bo
bo.liu at linux.alibaba.com
Thu May 2 22:10:15 UTC 2019
On Tue, Apr 16, 2019 at 02:07:56PM -0400, Vivek Goyal wrote:
> On Wed, Apr 17, 2019 at 02:03:22AM +0800, Liu Bo wrote:
> > From: Xiaoguang Wang <xiaoguang.wang at linux.alibaba.com>
> >
> > This bug is obvious, fix it.
> >
> > Reviewed-by: Joseph Qi <joseph.qi at linux.alibaba.com>
> > Signed-off-by: Xiaoguang Wang <xiaoguang.wang at linux.alibaba.com>
>
> Thanks. This one I ran into late last week while testing
> fallocate(PUNCH_HOLE) and fixed it already in my internal branch.
Hi Vivek,
FYI, the bug still exists in
https://github.com/rhvgoyal/linux/tree/virtio-fs-4.19.28
thanks,
-liubo
>
> Vivek
> > ---
> > fs/fuse/file.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/fs/fuse/file.c b/fs/fuse/file.c
> > index 6ab23d7..0236783 100644
> > --- a/fs/fuse/file.c
> > +++ b/fs/fuse/file.c
> > @@ -3623,7 +3623,7 @@ static long __fuse_file_fallocate(struct file *file, int mode,
> > if (mode & FALLOC_FL_PUNCH_HOLE) {
> > down_write(&fi->i_mmap_sem);
> > truncate_pagecache_range(inode, offset, offset + length - 1);
> > - down_write(&fi->i_mmap_sem);
> > + up_write(&fi->i_mmap_sem);
> > }
> > fuse_invalidate_attr(inode);
> >
> > --
> > 1.8.3.1
> >
> > _______________________________________________
> > Virtio-fs mailing list
> > Virtio-fs at redhat.com
> > https://www.redhat.com/mailman/listinfo/virtio-fs
More information about the Virtio-fs
mailing list