9p pull request for inclusion in 5.4
Small fixes all around: - avoid overlayfs copy-up for PRIVATE mmaps - KUMSAN uninitialized warning for transport error - one syzbot memory leak fix in 9p cache - internal API cleanup for v9fs_fill_super -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE/IPbcYBuWt0zoYhOq06b7GqY5nAFAl2OG0MACgkQq06b7GqY 5nB21Q/+P4kD+wBg4d1b74Mf+oK2p2cSvCnYHcwMgkRsuyFgu7JXLSuRy2DLlAa4 F+92x0jvit+yUy8bFqlEsSGGmE/dZC3WfpBOVChZRT/9ZLcxNasowtGDaySrX1e1 tmx5QfYsNL840Cv8Vfos4QJjze1oE6RmSCUUO4KyC250PO/jxEgWGVPv1S8LfTUb KyhkcKlJ+TCqEON9nZ+CrQ4rndHNc7LxtBjVR0M03UYW55kYAhMLSj/AWqKA5I0q tARlTSgHHRdj4EJvWvLw7INg7BuvTuuyIzCIo/RfpUvijTDyLXFQI3qgtXosKLSq wuOacq8ykDRv8nvpLJ98daCw0pQOF2Qw40niFfl8Y7AxnaXggMI+UsVX/BnigVWX E6kaJm6d/YERee/f7aBsJkjKbwRqO7tMbNDrbK2/AzAaZo92dnB5nsEJnvKtCdjl aylBujCJq/DPp/SOf0Rl8mr24GdYVIk04hvqpxr4X6a/sacO3EUMh8GkGD7muY63 axbYildLQHyChEn0TNdicFFrVie3A984eiK8sht+visd7c5QRm9iu1lsYtXdVGuz 0OvSRtJuTDCTs6s1DhhVnez9luzH4VZJAj0RYJjcF1M4tzy0sKWUSSUf3RUbyxmY bocklihTlI5UzZfCP/wChXJ26+QrmcL7j0PrKA0NJy7ooFyT5eI= =VBrx -----END PGP SIGNATURE----- Merge tag '9p-for-5.4' of git://github.com/martinetd/linux Pull 9p updates from Dominique Martinet: "Some of the usual small fixes and cleanup. Small fixes all around: - avoid overlayfs copy-up for PRIVATE mmaps - KUMSAN uninitialized warning for transport error - one syzbot memory leak fix in 9p cache - internal API cleanup for v9fs_fill_super" * tag '9p-for-5.4' of git://github.com/martinetd/linux: 9p/vfs_super.c: Remove unused parameter data in v9fs_fill_super 9p/cache.c: Fix memory leak in v9fs_cache_session_get_cookie 9p: Transport error uninitialized 9p: avoid attaching writeback_fid on mmap with type PRIVATE
This commit is contained in:
commit
9977b1a714
|
@ -51,6 +51,8 @@ void v9fs_cache_session_get_cookie(struct v9fs_session_info *v9ses)
|
||||||
if (!v9ses->cachetag) {
|
if (!v9ses->cachetag) {
|
||||||
if (v9fs_random_cachetag(v9ses) < 0) {
|
if (v9fs_random_cachetag(v9ses) < 0) {
|
||||||
v9ses->fscache = NULL;
|
v9ses->fscache = NULL;
|
||||||
|
kfree(v9ses->cachetag);
|
||||||
|
v9ses->cachetag = NULL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -513,6 +513,7 @@ v9fs_mmap_file_mmap(struct file *filp, struct vm_area_struct *vma)
|
||||||
v9inode = V9FS_I(inode);
|
v9inode = V9FS_I(inode);
|
||||||
mutex_lock(&v9inode->v_mutex);
|
mutex_lock(&v9inode->v_mutex);
|
||||||
if (!v9inode->writeback_fid &&
|
if (!v9inode->writeback_fid &&
|
||||||
|
(vma->vm_flags & VM_SHARED) &&
|
||||||
(vma->vm_flags & VM_WRITE)) {
|
(vma->vm_flags & VM_WRITE)) {
|
||||||
/*
|
/*
|
||||||
* clone a fid and add it to writeback_fid
|
* clone a fid and add it to writeback_fid
|
||||||
|
@ -614,6 +615,8 @@ static void v9fs_mmap_vm_close(struct vm_area_struct *vma)
|
||||||
(vma->vm_end - vma->vm_start - 1),
|
(vma->vm_end - vma->vm_start - 1),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (!(vma->vm_flags & VM_SHARED))
|
||||||
|
return;
|
||||||
|
|
||||||
p9_debug(P9_DEBUG_VFS, "9p VMA close, %p, flushing", vma);
|
p9_debug(P9_DEBUG_VFS, "9p VMA close, %p, flushing", vma);
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ static int v9fs_set_super(struct super_block *s, void *data)
|
||||||
|
|
||||||
static int
|
static int
|
||||||
v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
|
v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
|
||||||
int flags, void *data)
|
int flags)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ static struct dentry *v9fs_mount(struct file_system_type *fs_type, int flags,
|
||||||
retval = PTR_ERR(sb);
|
retval = PTR_ERR(sb);
|
||||||
goto clunk_fid;
|
goto clunk_fid;
|
||||||
}
|
}
|
||||||
retval = v9fs_fill_super(sb, v9ses, flags, data);
|
retval = v9fs_fill_super(sb, v9ses, flags);
|
||||||
if (retval)
|
if (retval)
|
||||||
goto release_sb;
|
goto release_sb;
|
||||||
|
|
||||||
|
|
|
@ -281,6 +281,7 @@ p9_tag_alloc(struct p9_client *c, int8_t type, unsigned int max_size)
|
||||||
|
|
||||||
p9pdu_reset(&req->tc);
|
p9pdu_reset(&req->tc);
|
||||||
p9pdu_reset(&req->rc);
|
p9pdu_reset(&req->rc);
|
||||||
|
req->t_err = 0;
|
||||||
req->status = REQ_STATUS_ALLOC;
|
req->status = REQ_STATUS_ALLOC;
|
||||||
init_waitqueue_head(&req->wq);
|
init_waitqueue_head(&req->wq);
|
||||||
INIT_LIST_HEAD(&req->req_list);
|
INIT_LIST_HEAD(&req->req_list);
|
||||||
|
|
Loading…
Reference in New Issue