linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: David Howells <dhowells@redhat.com>,
	jlayton@kernel.org, willy@infradead.org
Cc: kbuild-all@lists.01.org, linux-afs@lists.infradead.org,
	dhowells@redhat.com, ceph-devel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] afs: Handle len being extending over page end in write_begin/write_end
Date: Thu, 17 Jun 2021 15:43:01 +0800	[thread overview]
Message-ID: <202106171519.LBuPDo2F-lkp@intel.com> (raw)
In-Reply-To: <162367681795.460125.11729955608839747375.stgit@warthog.procyon.org.uk>

[-- Attachment #1: Type: text/plain, Size: 7824 bytes --]

Hi David,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.13-rc6 next-20210616]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/David-Howells/afs-Handle-len-being-extending-over-page-end-in-write_begin-write_end/20210617-091000
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 70585216fe7730d9fb5453d3e2804e149d0fe201
config: arc-allyesconfig (attached as .config)
compiler: arceb-elf-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/d5cb85d0ca85764a811baaf4baca5f1890476434
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review David-Howells/afs-Handle-len-being-extending-over-page-end-in-write_begin-write_end/20210617-091000
        git checkout d5cb85d0ca85764a811baaf4baca5f1890476434
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   fs/afs/write.c: In function 'afs_write_begin':
>> fs/afs/write.c:40:10: warning: variable 'index' set but not used [-Wunused-but-set-variable]
      40 |  pgoff_t index;
         |          ^~~~~


vim +/index +40 fs/afs/write.c

31143d5d515ece David Howells   2007-05-09   26  
31143d5d515ece David Howells   2007-05-09   27  /*
d5cb85d0ca8576 David Howells   2021-06-14   28   * Prepare to perform part of a write to a page.  Note that len may extend
d5cb85d0ca8576 David Howells   2021-06-14   29   * beyond the end of the page.
31143d5d515ece David Howells   2007-05-09   30   */
15b4650e55e06d Nicholas Piggin 2008-10-15   31  int afs_write_begin(struct file *file, struct address_space *mapping,
15b4650e55e06d Nicholas Piggin 2008-10-15   32  		    loff_t pos, unsigned len, unsigned flags,
21db2cdc667f74 David Howells   2020-10-22   33  		    struct page **_page, void **fsdata)
31143d5d515ece David Howells   2007-05-09   34  {
496ad9aa8ef448 Al Viro         2013-01-23   35  	struct afs_vnode *vnode = AFS_FS_I(file_inode(file));
15b4650e55e06d Nicholas Piggin 2008-10-15   36  	struct page *page;
4343d00872e1de David Howells   2017-11-02   37  	unsigned long priv;
e87b03f5830ecd David Howells   2020-10-20   38  	unsigned f, from;
e87b03f5830ecd David Howells   2020-10-20   39  	unsigned t, to;
e87b03f5830ecd David Howells   2020-10-20  @40  	pgoff_t index;
31143d5d515ece David Howells   2007-05-09   41  	int ret;
31143d5d515ece David Howells   2007-05-09   42  
e87b03f5830ecd David Howells   2020-10-20   43  	_enter("{%llx:%llu},%llx,%x",
e87b03f5830ecd David Howells   2020-10-20   44  	       vnode->fid.vid, vnode->fid.vnode, pos, len);
31143d5d515ece David Howells   2007-05-09   45  
3003bbd0697b65 David Howells   2020-02-06   46  	/* Prefetch area to be written into the cache if we're caching this
3003bbd0697b65 David Howells   2020-02-06   47  	 * file.  We need to do this before we get a lock on the page in case
3003bbd0697b65 David Howells   2020-02-06   48  	 * there's more than one writer competing for the same cache block.
3003bbd0697b65 David Howells   2020-02-06   49  	 */
3003bbd0697b65 David Howells   2020-02-06   50  	ret = netfs_write_begin(file, mapping, pos, len, flags, &page, fsdata,
3003bbd0697b65 David Howells   2020-02-06   51  				&afs_req_ops, NULL);
3003bbd0697b65 David Howells   2020-02-06   52  	if (ret < 0)
31143d5d515ece David Howells   2007-05-09   53  		return ret;
630f5dda8442ca David Howells   2020-02-06   54  
e87b03f5830ecd David Howells   2020-10-20   55  	index = page->index;
d5cb85d0ca8576 David Howells   2021-06-14   56  	from = offset_in_thp(page, pos);
d5cb85d0ca8576 David Howells   2021-06-14   57  	len = min_t(size_t, len, thp_size(page) - from);
e87b03f5830ecd David Howells   2020-10-20   58  	to = from + len;
e87b03f5830ecd David Howells   2020-10-20   59  
31143d5d515ece David Howells   2007-05-09   60  try_again:
4343d00872e1de David Howells   2017-11-02   61  	/* See if this page is already partially written in a way that we can
4343d00872e1de David Howells   2017-11-02   62  	 * merge the new write with.
4343d00872e1de David Howells   2017-11-02   63  	 */
4343d00872e1de David Howells   2017-11-02   64  	if (PagePrivate(page)) {
4343d00872e1de David Howells   2017-11-02   65  		priv = page_private(page);
67d78a6f6e7b38 David Howells   2020-10-28   66  		f = afs_page_dirty_from(page, priv);
67d78a6f6e7b38 David Howells   2020-10-28   67  		t = afs_page_dirty_to(page, priv);
4343d00872e1de David Howells   2017-11-02   68  		ASSERTCMP(f, <=, t);
4343d00872e1de David Howells   2017-11-02   69  
5a039c32271b9a David Howells   2017-11-18   70  		if (PageWriteback(page)) {
67d78a6f6e7b38 David Howells   2020-10-28   71  			trace_afs_page_dirty(vnode, tracepoint_string("alrdy"), page);
5a039c32271b9a David Howells   2017-11-18   72  			goto flush_conflicting_write;
5a039c32271b9a David Howells   2017-11-18   73  		}
5a8132761609bd David Howells   2018-04-06   74  		/* If the file is being filled locally, allow inter-write
5a8132761609bd David Howells   2018-04-06   75  		 * spaces to be merged into writes.  If it's not, only write
5a8132761609bd David Howells   2018-04-06   76  		 * back what the user gives us.
5a8132761609bd David Howells   2018-04-06   77  		 */
5a8132761609bd David Howells   2018-04-06   78  		if (!test_bit(AFS_VNODE_NEW_CONTENT, &vnode->flags) &&
5a8132761609bd David Howells   2018-04-06   79  		    (to < f || from > t))
4343d00872e1de David Howells   2017-11-02   80  			goto flush_conflicting_write;
31143d5d515ece David Howells   2007-05-09   81  	}
31143d5d515ece David Howells   2007-05-09   82  
21db2cdc667f74 David Howells   2020-10-22   83  	*_page = page;
4343d00872e1de David Howells   2017-11-02   84  	_leave(" = 0");
31143d5d515ece David Howells   2007-05-09   85  	return 0;
31143d5d515ece David Howells   2007-05-09   86  
4343d00872e1de David Howells   2017-11-02   87  	/* The previous write and this write aren't adjacent or overlapping, so
4343d00872e1de David Howells   2017-11-02   88  	 * flush the page out.
4343d00872e1de David Howells   2017-11-02   89  	 */
4343d00872e1de David Howells   2017-11-02   90  flush_conflicting_write:
31143d5d515ece David Howells   2007-05-09   91  	_debug("flush conflict");
4343d00872e1de David Howells   2017-11-02   92  	ret = write_one_page(page);
21db2cdc667f74 David Howells   2020-10-22   93  	if (ret < 0)
21db2cdc667f74 David Howells   2020-10-22   94  		goto error;
31143d5d515ece David Howells   2007-05-09   95  
4343d00872e1de David Howells   2017-11-02   96  	ret = lock_page_killable(page);
21db2cdc667f74 David Howells   2020-10-22   97  	if (ret < 0)
21db2cdc667f74 David Howells   2020-10-22   98  		goto error;
21db2cdc667f74 David Howells   2020-10-22   99  	goto try_again;
21db2cdc667f74 David Howells   2020-10-22  100  
21db2cdc667f74 David Howells   2020-10-22  101  error:
21db2cdc667f74 David Howells   2020-10-22  102  	put_page(page);
4343d00872e1de David Howells   2017-11-02  103  	_leave(" = %d", ret);
4343d00872e1de David Howells   2017-11-02  104  	return ret;
4343d00872e1de David Howells   2017-11-02  105  }
31143d5d515ece David Howells   2007-05-09  106  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 68158 bytes --]

      parent reply	other threads:[~2021-06-17  7:43 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-14 13:20 [PATCH 1/3] afs: Handle len being extending over page end in write_begin/write_end David Howells
2021-06-14 13:20 ` [PATCH 2/3] afs: Fix afs_write_end() to handle short writes David Howells
2021-06-14 13:28   ` Matthew Wilcox
2021-06-14 13:37   ` David Howells
2021-06-14 13:46     ` Matthew Wilcox
2021-06-18  3:40       ` Al Viro
2021-06-14 14:04     ` David Howells
2021-06-14 14:37   ` Matthew Wilcox
2021-06-14 15:38   ` David Howells
2021-06-14 15:43     ` Matthew Wilcox
2021-06-14 21:11     ` David Howells
2021-06-14 13:20 ` [PATCH 3/3] netfs: fix test for whether we can skip read when writing beyond EOF David Howells
2021-06-15 17:01   ` Jeff Layton
2021-06-14 13:33 ` David Howells
2021-06-17  7:43 ` kernel test robot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202106171519.LBuPDo2F-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=dhowells@redhat.com \
    --cc=jlayton@kernel.org \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-afs@lists.infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).