Hi Dan,

On Wed, Aug 12, 2015 at 01:40:10PM +0300, Dan Carpenter wrote:
> Hello Jaegeuk Kim,
> 
> The patch 86531d6b84bc: "f2fs: callers take care of the page from bio
> error" from Jul 15, 2015, leads to the following static checker
> warning:
> 
>       fs/f2fs/node.c:1042 ra_node_page()
>       warn: 'err' can be either negative or positive
> 
> fs/f2fs/node.c
>   1025  void ra_node_page(struct f2fs_sb_info *sbi, nid_t nid)
>   1026  {
>   1027          struct page *apage;
>   1028          int err;
>   1029  
>   1030          apage = find_get_page(NODE_MAPPING(sbi), nid);
>   1031          if (apage && PageUptodate(apage)) {
>   1032                  f2fs_put_page(apage, 0);
>   1033                  return;
>   1034          }
>   1035          f2fs_put_page(apage, 0);
>   1036  
>   1037          apage = grab_cache_page(NODE_MAPPING(sbi), nid);
>   1038          if (!apage)
>   1039                  return;
>   1040  
>   1041          err = read_node_page(apage, READA);
>   1042          f2fs_put_page(apage, err ? 1 : 0);
> 
> In the old code we took errors into consideration but now we treat them
> as LOCKED_PAGE.  Is that intentional?  A lot of the other callers in
> that patch still check for errors...

This is just for read-ahead node page function.
So, yes, if it returns LOCKED_PAGE or any error, the page must be unlocked
via f2fs_put_page(1).
Otherwise, end_io will unlock the page.

Hmm, any workaround to avoid that warning?

Thanks,

> 
>   1043  }
> 
> regards,
> dan carpenter

------------------------------------------------------------------------------
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to