2015-12-19 02:54:58

by Minfei Huang

[permalink] [raw]
Subject: [PATCH] ceph: Avoid to propagate the invalid page point

The variant pagep will still get the invalid page point, although ceph
fails in function ceph_update_writeable_page.

To fix this issue, Assigne the page to pagep until there is no failure
in function ceph_update_writeable_page.

Signed-off-by: Minfei Huang <[email protected]>
---
fs/ceph/addr.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index b7d218a..6491079 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -1149,7 +1149,6 @@ static int ceph_write_begin(struct file *file, struct address_space *mapping,
page = grab_cache_page_write_begin(mapping, index, 0);
if (!page)
return -ENOMEM;
- *pagep = page;

dout("write_begin file %p inode %p page %p %d~%d\n", file,
inode, page, (int)pos, (int)len);
--
2.6.3


2015-12-21 04:13:14

by Yan, Zheng

[permalink] [raw]
Subject: Re: [PATCH] ceph: Avoid to propagate the invalid page point


> On Dec 19, 2015, at 10:54, Minfei Huang <[email protected]> wrote:
>
> The variant pagep will still get the invalid page point, although ceph
> fails in function ceph_update_writeable_page.
>
> To fix this issue, Assigne the page to pagep until there is no failure
> in function ceph_update_writeable_page.
>
> Signed-off-by: Minfei Huang <[email protected]>
> ---
> fs/ceph/addr.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
> index b7d218a..6491079 100644
> --- a/fs/ceph/addr.c
> +++ b/fs/ceph/addr.c
> @@ -1149,7 +1149,6 @@ static int ceph_write_begin(struct file *file, struct address_space *mapping,
> page = grab_cache_page_write_begin(mapping, index, 0);
> if (!page)
> return -ENOMEM;
> - *pagep = page;
>
> dout("write_begin file %p inode %p page %p %d~%d\n", file,
> inode, page, (int)pos, (int)len);

applied, thanks

Yan, Zheng

> --
> 2.6.3
>