Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 68596bd1 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Trond Myklebust
Browse files

pnfs/blocklayout: set up layoutupdate_pages properly



We need to replace the __be32 with a void pointer to do proper arithmentics
on the virtual addresses so that we can get the right page pointers.

Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
parent 29662fa6
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -558,15 +558,12 @@ ext_tree_prepare_commit(struct nfs4_layoutcommit_args *arg)
	arg->layoutupdate_len = ext_tree_layoutupdate_size(count);

	if (unlikely(arg->layoutupdate_pages != &arg->layoutupdate_page)) {
		__be32 *p = start_p;
		void *p = start_p, *end = p + arg->layoutupdate_len;
		int i = 0;

		for (p = start_p;
		     p < start_p + arg->layoutupdate_len;
		     p += PAGE_SIZE) {
		for ( ; p < end; p += PAGE_SIZE)
			arg->layoutupdate_pages[i++] = vmalloc_to_page(p);
	}
	}

	dprintk("%s found %zu ranges\n", __func__, count);
	return 0;