All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [dhowells-fs:netfs-folio-regions 13/36] fs/netfs/read_helper.c:1260:7: error: implicit declaration of function 'netfs_is_cache_enabled'
Date: Mon, 30 Aug 2021 18:15:22 +0800	[thread overview]
Message-ID: <202108301815.3YzGWewl-lkp@intel.com> (raw)

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git netfs-folio-regions
head:   2f3fe780e9a44691136170536363c701b527d0e8
commit: 7261c29990677f14498f0aa1749db277a581b9c3 [13/36] netfs: Add a netfs inode context
config: i386-randconfig-s031-20210830 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-348-gf0e6938b-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit/?id=7261c29990677f14498f0aa1749db277a581b9c3
        git remote add dhowells-fs https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
        git fetch --no-tags dhowells-fs netfs-folio-regions
        git checkout 7261c29990677f14498f0aa1749db277a581b9c3
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

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

All errors (new ones prefixed by >>):

   fs/netfs/read_helper.c: In function 'netfs_write_begin':
>> fs/netfs/read_helper.c:1260:7: error: implicit declaration of function 'netfs_is_cache_enabled' [-Werror=implicit-function-declaration]
    1260 |  if (!netfs_is_cache_enabled(ctx) &&
         |       ^~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/netfs_is_cache_enabled +1260 fs/netfs/read_helper.c

  1187	
  1188	/**
  1189	 * netfs_write_begin - Helper to prepare for writing
  1190	 * @file: The file to read from
  1191	 * @mapping: The mapping to read from
  1192	 * @pos: File position at which the write will begin
  1193	 * @len: The length of the write (may extend beyond the end of the folio chosen)
  1194	 * @aop_flags: AOP_* flags
  1195	 * @_folio: Where to put the resultant folio
  1196	 * @_fsdata: Place for the netfs to store a cookie
  1197	 *
  1198	 * Pre-read data for a write-begin request by drawing data from the cache if
  1199	 * possible, or the netfs if not.  Space beyond the EOF is zero-filled.
  1200	 * Multiple I/O requests from different sources will get munged together.  If
  1201	 * necessary, the readahead window can be expanded in either direction to a
  1202	 * more convenient alighment for RPC efficiency or to make storage in the cache
  1203	 * feasible.
  1204	 *
  1205	 * The calling netfs must provide a table of operations, only one of which,
  1206	 * issue_op, is mandatory.
  1207	 *
  1208	 * The check_write_begin() operation can be provided to check for and flush
  1209	 * conflicting writes once the folio is grabbed and locked.  It is passed a
  1210	 * pointer to the fsdata cookie that gets returned to the VM to be passed to
  1211	 * write_end.  It is permitted to sleep.  It should return 0 if the request
  1212	 * should go ahead; unlock the folio and return -EAGAIN to cause the folio to
  1213	 * be regot; or return an error.
  1214	 *
  1215	 * The calling netfs must initialise a netfs context contiguous to the vfs
  1216	 * inode before calling this.
  1217	 *
  1218	 * This is usable whether or not caching is enabled.
  1219	 */
  1220	int netfs_write_begin(struct file *file, struct address_space *mapping,
  1221			      loff_t pos, unsigned int len, unsigned int aop_flags,
  1222			      struct folio **_folio, void **_fsdata)
  1223	{
  1224		struct netfs_read_request *rreq;
  1225		struct netfs_i_context *ctx = netfs_i_context(file_inode(file ));
  1226		struct folio *folio;
  1227		unsigned int debug_index = 0, fgp_flags;
  1228		pgoff_t index = pos >> PAGE_SHIFT;
  1229		int ret;
  1230	
  1231		DEFINE_READAHEAD(ractl, file, NULL, mapping, index);
  1232	
  1233	retry:
  1234		fgp_flags = FGP_LOCK | FGP_WRITE | FGP_CREAT | FGP_STABLE;
  1235		if (aop_flags & AOP_FLAG_NOFS)
  1236			fgp_flags |= FGP_NOFS;
  1237		folio = __filemap_get_folio(mapping, index, fgp_flags,
  1238					    mapping_gfp_mask(mapping));
  1239		if (!folio)
  1240			return -ENOMEM;
  1241	
  1242		if (ctx->ops->check_write_begin) {
  1243			/* Allow the netfs (eg. ceph) to flush conflicts. */
  1244			ret = ctx->ops->check_write_begin(file, pos, len, folio, _fsdata);
  1245			if (ret < 0) {
  1246				trace_netfs_failure(NULL, NULL, ret, netfs_fail_check_write_begin);
  1247				if (ret == -EAGAIN)
  1248					goto retry;
  1249				goto error;
  1250			}
  1251		}
  1252	
  1253		if (folio_test_uptodate(folio))
  1254			goto have_folio;
  1255	
  1256		/* If the folio is beyond the EOF, we want to clear it - unless it's
  1257		 * within the cache granule containing the EOF, in which case we need
  1258		 * to preload the granule.
  1259		 */
> 1260		if (!netfs_is_cache_enabled(ctx) &&

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

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

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: David Howells <dhowells@redhat.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org
Subject: [dhowells-fs:netfs-folio-regions 13/36] fs/netfs/read_helper.c:1260:7: error: implicit declaration of function 'netfs_is_cache_enabled'
Date: Mon, 30 Aug 2021 18:15:22 +0800	[thread overview]
Message-ID: <202108301815.3YzGWewl-lkp@intel.com> (raw)

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git netfs-folio-regions
head:   2f3fe780e9a44691136170536363c701b527d0e8
commit: 7261c29990677f14498f0aa1749db277a581b9c3 [13/36] netfs: Add a netfs inode context
config: i386-randconfig-s031-20210830 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-348-gf0e6938b-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit/?id=7261c29990677f14498f0aa1749db277a581b9c3
        git remote add dhowells-fs https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
        git fetch --no-tags dhowells-fs netfs-folio-regions
        git checkout 7261c29990677f14498f0aa1749db277a581b9c3
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

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

All errors (new ones prefixed by >>):

   fs/netfs/read_helper.c: In function 'netfs_write_begin':
>> fs/netfs/read_helper.c:1260:7: error: implicit declaration of function 'netfs_is_cache_enabled' [-Werror=implicit-function-declaration]
    1260 |  if (!netfs_is_cache_enabled(ctx) &&
         |       ^~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/netfs_is_cache_enabled +1260 fs/netfs/read_helper.c

  1187	
  1188	/**
  1189	 * netfs_write_begin - Helper to prepare for writing
  1190	 * @file: The file to read from
  1191	 * @mapping: The mapping to read from
  1192	 * @pos: File position at which the write will begin
  1193	 * @len: The length of the write (may extend beyond the end of the folio chosen)
  1194	 * @aop_flags: AOP_* flags
  1195	 * @_folio: Where to put the resultant folio
  1196	 * @_fsdata: Place for the netfs to store a cookie
  1197	 *
  1198	 * Pre-read data for a write-begin request by drawing data from the cache if
  1199	 * possible, or the netfs if not.  Space beyond the EOF is zero-filled.
  1200	 * Multiple I/O requests from different sources will get munged together.  If
  1201	 * necessary, the readahead window can be expanded in either direction to a
  1202	 * more convenient alighment for RPC efficiency or to make storage in the cache
  1203	 * feasible.
  1204	 *
  1205	 * The calling netfs must provide a table of operations, only one of which,
  1206	 * issue_op, is mandatory.
  1207	 *
  1208	 * The check_write_begin() operation can be provided to check for and flush
  1209	 * conflicting writes once the folio is grabbed and locked.  It is passed a
  1210	 * pointer to the fsdata cookie that gets returned to the VM to be passed to
  1211	 * write_end.  It is permitted to sleep.  It should return 0 if the request
  1212	 * should go ahead; unlock the folio and return -EAGAIN to cause the folio to
  1213	 * be regot; or return an error.
  1214	 *
  1215	 * The calling netfs must initialise a netfs context contiguous to the vfs
  1216	 * inode before calling this.
  1217	 *
  1218	 * This is usable whether or not caching is enabled.
  1219	 */
  1220	int netfs_write_begin(struct file *file, struct address_space *mapping,
  1221			      loff_t pos, unsigned int len, unsigned int aop_flags,
  1222			      struct folio **_folio, void **_fsdata)
  1223	{
  1224		struct netfs_read_request *rreq;
  1225		struct netfs_i_context *ctx = netfs_i_context(file_inode(file ));
  1226		struct folio *folio;
  1227		unsigned int debug_index = 0, fgp_flags;
  1228		pgoff_t index = pos >> PAGE_SHIFT;
  1229		int ret;
  1230	
  1231		DEFINE_READAHEAD(ractl, file, NULL, mapping, index);
  1232	
  1233	retry:
  1234		fgp_flags = FGP_LOCK | FGP_WRITE | FGP_CREAT | FGP_STABLE;
  1235		if (aop_flags & AOP_FLAG_NOFS)
  1236			fgp_flags |= FGP_NOFS;
  1237		folio = __filemap_get_folio(mapping, index, fgp_flags,
  1238					    mapping_gfp_mask(mapping));
  1239		if (!folio)
  1240			return -ENOMEM;
  1241	
  1242		if (ctx->ops->check_write_begin) {
  1243			/* Allow the netfs (eg. ceph) to flush conflicts. */
  1244			ret = ctx->ops->check_write_begin(file, pos, len, folio, _fsdata);
  1245			if (ret < 0) {
  1246				trace_netfs_failure(NULL, NULL, ret, netfs_fail_check_write_begin);
  1247				if (ret == -EAGAIN)
  1248					goto retry;
  1249				goto error;
  1250			}
  1251		}
  1252	
  1253		if (folio_test_uptodate(folio))
  1254			goto have_folio;
  1255	
  1256		/* If the folio is beyond the EOF, we want to clear it - unless it's
  1257		 * within the cache granule containing the EOF, in which case we need
  1258		 * to preload the granule.
  1259		 */
> 1260		if (!netfs_is_cache_enabled(ctx) &&

---
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: 39194 bytes --]

             reply	other threads:[~2021-08-30 10:15 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-30 10:15 kernel test robot [this message]
2021-08-30 10:15 ` [dhowells-fs:netfs-folio-regions 13/36] fs/netfs/read_helper.c:1260:7: error: implicit declaration of function 'netfs_is_cache_enabled' kernel test robot

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=202108301815.3YzGWewl-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.