* [PATCH] xfs: remove XFS_ITEM_RELEASE_WHEN_COMMITTED
@ 2021-05-04 4:28 Dave Chinner
2021-05-04 7:20 ` Dave Chinner
2021-05-04 9:04 ` kernel test robot
0 siblings, 2 replies; 4+ messages in thread
From: Dave Chinner @ 2021-05-04 4:28 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
Redundant functionality. Returning NULLCOMMITLSN from
->iop_committed means "release item as there is no further
processing to be done", making this flag entirely redundant.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/xfs_bmap_item.c | 2 +-
fs/xfs/xfs_dquot_item.c | 2 +-
fs/xfs/xfs_extfree_item.c | 2 +-
fs/xfs/xfs_icreate_item.c | 2 +-
fs/xfs/xfs_inode_item.c | 4 ++--
fs/xfs/xfs_log.c | 12 ++++++++++++
fs/xfs/xfs_refcount_item.c | 2 +-
fs/xfs/xfs_rmap_item.c | 2 +-
fs/xfs/xfs_trans.c | 9 ++-------
fs/xfs/xfs_trans.h | 13 ++++++-------
10 files changed, 28 insertions(+), 22 deletions(-)
diff --git a/fs/xfs/xfs_bmap_item.c b/fs/xfs/xfs_bmap_item.c
index 2344757ede63..e827ebaf815e 100644
--- a/fs/xfs/xfs_bmap_item.c
+++ b/fs/xfs/xfs_bmap_item.c
@@ -203,10 +203,10 @@ xfs_bud_item_release(
}
static const struct xfs_item_ops xfs_bud_item_ops = {
- .flags = XFS_ITEM_RELEASE_WHEN_COMMITTED,
.iop_size = xfs_bud_item_size,
.iop_format = xfs_bud_item_format,
.iop_release = xfs_bud_item_release,
+ .iop_comitted = xfs_log_item_committed_done,
};
static struct xfs_bud_log_item *
diff --git a/fs/xfs/xfs_dquot_item.c b/fs/xfs/xfs_dquot_item.c
index 8c1fdf37ee8f..4fcfc9e58ca1 100644
--- a/fs/xfs/xfs_dquot_item.c
+++ b/fs/xfs/xfs_dquot_item.c
@@ -282,7 +282,7 @@ xfs_qm_qoffend_logitem_committed(
kmem_free(lip->li_lv_shadow);
kmem_free(qfe);
- return (xfs_lsn_t)-1;
+ return NULLCOMMITLSN;
}
STATIC void
diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c
index 93223ebb3372..04a117645906 100644
--- a/fs/xfs/xfs_extfree_item.c
+++ b/fs/xfs/xfs_extfree_item.c
@@ -307,10 +307,10 @@ xfs_efd_item_release(
}
static const struct xfs_item_ops xfs_efd_item_ops = {
- .flags = XFS_ITEM_RELEASE_WHEN_COMMITTED,
.iop_size = xfs_efd_item_size,
.iop_format = xfs_efd_item_format,
.iop_release = xfs_efd_item_release,
+ .iop_comitted = xfs_log_item_committed_done,
};
/*
diff --git a/fs/xfs/xfs_icreate_item.c b/fs/xfs/xfs_icreate_item.c
index 9b3994b9c716..f1c5b04c805d 100644
--- a/fs/xfs/xfs_icreate_item.c
+++ b/fs/xfs/xfs_icreate_item.c
@@ -67,10 +67,10 @@ xfs_icreate_item_release(
}
static const struct xfs_item_ops xfs_icreate_item_ops = {
- .flags = XFS_ITEM_RELEASE_WHEN_COMMITTED,
.iop_size = xfs_icreate_item_size,
.iop_format = xfs_icreate_item_format,
.iop_release = xfs_icreate_item_release,
+ .iop_comitted = xfs_log_item_committed_done,
};
diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c
index c1b32680f71c..8122defbf139 100644
--- a/fs/xfs/xfs_inode_item.c
+++ b/fs/xfs/xfs_inode_item.c
@@ -607,7 +607,7 @@ xfs_inode_item_release(
* triggers an assert in xfs_inode_free() complaining about freein an inode
* still in the AIL.
*
- * To avoid this, just unpin the inode directly and return a LSN of -1 so the
+ * To avoid this, just unpin the inode directly and return NULLCOMMITLSN so the
* transaction committed code knows that it does not need to do any further
* processing on the item.
*/
@@ -621,7 +621,7 @@ xfs_inode_item_committed(
if (xfs_iflags_test(ip, XFS_ISTALE)) {
xfs_inode_item_unpin(lip, 0);
- return -1;
+ return NULLCOMMITLSN;
}
return lsn;
}
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index 06041834daa3..0a5ed64f1c7a 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -1012,6 +1012,18 @@ xfs_log_item_init(
INIT_LIST_HEAD(&item->li_trans);
}
+/*
+ * Log items that have no processing required after they are committed use this
+ * as their ->iop_committed method. xfs_trans_committed_bulk() will skip further
+ * processing for objects that return NULLCOMMITLSN to this method.
+ */
+xfs_lsn_t
+xfs_log_item_committed_done(
+ struct xfs_log_item *item)
+{
+ return NULLCOMMITLSN;
+}
+
/*
* Wake up processes waiting for log space after we have moved the log tail.
*/
diff --git a/fs/xfs/xfs_refcount_item.c b/fs/xfs/xfs_refcount_item.c
index 07ebccbbf4df..6a606a2f9019 100644
--- a/fs/xfs/xfs_refcount_item.c
+++ b/fs/xfs/xfs_refcount_item.c
@@ -208,10 +208,10 @@ xfs_cud_item_release(
}
static const struct xfs_item_ops xfs_cud_item_ops = {
- .flags = XFS_ITEM_RELEASE_WHEN_COMMITTED,
.iop_size = xfs_cud_item_size,
.iop_format = xfs_cud_item_format,
.iop_release = xfs_cud_item_release,
+ .iop_comitted = xfs_log_item_committed_done,
};
static struct xfs_cud_log_item *
diff --git a/fs/xfs/xfs_rmap_item.c b/fs/xfs/xfs_rmap_item.c
index 49cebd68b672..1fc580548e72 100644
--- a/fs/xfs/xfs_rmap_item.c
+++ b/fs/xfs/xfs_rmap_item.c
@@ -231,10 +231,10 @@ xfs_rud_item_release(
}
static const struct xfs_item_ops xfs_rud_item_ops = {
- .flags = XFS_ITEM_RELEASE_WHEN_COMMITTED,
.iop_size = xfs_rud_item_size,
.iop_format = xfs_rud_item_format,
.iop_release = xfs_rud_item_release,
+ .iop_comitted = xfs_log_item_committed_done,
};
static struct xfs_rud_log_item *
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c
index bcc978011869..641cfb753999 100644
--- a/fs/xfs/xfs_trans.c
+++ b/fs/xfs/xfs_trans.c
@@ -763,18 +763,13 @@ xfs_trans_committed_bulk(
if (aborted)
set_bit(XFS_LI_ABORTED, &lip->li_flags);
- if (lip->li_ops->flags & XFS_ITEM_RELEASE_WHEN_COMMITTED) {
- lip->li_ops->iop_release(lip);
- continue;
- }
-
if (lip->li_ops->iop_committed)
item_lsn = lip->li_ops->iop_committed(lip, commit_lsn);
else
item_lsn = commit_lsn;
- /* item_lsn of -1 means the item needs no further processing */
- if (XFS_LSN_CMP(item_lsn, (xfs_lsn_t)-1) == 0)
+ /* NULLCOMMITLSN means the item needs no further processing */
+ if (XFS_LSN_CMP(item_lsn, NULLCOMMITLSN) == 0)
continue;
/*
diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
index 9dd745cf77c9..de22b4046ebc 100644
--- a/fs/xfs/xfs_trans.h
+++ b/fs/xfs/xfs_trans.h
@@ -63,7 +63,6 @@ struct xfs_log_item {
{ (1 << XFS_LI_DIRTY), "DIRTY" }
struct xfs_item_ops {
- unsigned flags;
void (*iop_size)(struct xfs_log_item *, int *, int *);
void (*iop_format)(struct xfs_log_item *, struct xfs_log_vec *);
void (*iop_pin)(struct xfs_log_item *);
@@ -95,15 +94,15 @@ xlog_item_is_intent_done(struct xfs_log_item *lip)
lip->li_ops->iop_push == NULL;
}
-/*
- * Release the log item as soon as committed. This is for items just logging
- * intents that never need to be written back in place.
- */
-#define XFS_ITEM_RELEASE_WHEN_COMMITTED (1 << 0)
-
void xfs_log_item_init(struct xfs_mount *mp, struct xfs_log_item *item,
int type, const struct xfs_item_ops *ops);
+/*
+ * Generic ->iop_committed callback to indicate that the log item should not be
+ * referenced by the caller once the callback returns.
+ */
+xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
+
/*
* Return values for the iop_push() routines.
*/
--
2.31.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] xfs: remove XFS_ITEM_RELEASE_WHEN_COMMITTED
2021-05-04 4:28 [PATCH] xfs: remove XFS_ITEM_RELEASE_WHEN_COMMITTED Dave Chinner
@ 2021-05-04 7:20 ` Dave Chinner
2021-05-04 9:04 ` kernel test robot
1 sibling, 0 replies; 4+ messages in thread
From: Dave Chinner @ 2021-05-04 7:20 UTC (permalink / raw)
To: linux-xfs
On Tue, May 04, 2021 at 02:28:05PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> Redundant functionality. Returning NULLCOMMITLSN from
> ->iop_committed means "release item as there is no further
> processing to be done", making this flag entirely redundant.
>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
Self NACK on this - I jus t realised I'd snet the wrong branch to
build and test so it "passed" when in fact it doesn't even compile,
let alone work.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] xfs: remove XFS_ITEM_RELEASE_WHEN_COMMITTED
2021-05-04 4:28 [PATCH] xfs: remove XFS_ITEM_RELEASE_WHEN_COMMITTED Dave Chinner
@ 2021-05-04 9:04 ` kernel test robot
2021-05-04 9:04 ` kernel test robot
1 sibling, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-05-04 9:04 UTC (permalink / raw)
To: Dave Chinner, linux-xfs; +Cc: kbuild-all, clang-built-linux
[-- Attachment #1: Type: text/plain, Size: 9677 bytes --]
Hi Dave,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on xfs-linux/for-next]
[also build test ERROR on v5.12 next-20210504]
[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/Dave-Chinner/xfs-remove-XFS_ITEM_RELEASE_WHEN_COMMITTED/20210504-123005
base: https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git for-next
config: x86_64-randconfig-a002-20210504 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8f5a2a5836cc8e4c1def2bdeb022e7b496623439)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/49245f53b5151023638e214a6f0817452b67c887
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Dave-Chinner/xfs-remove-XFS_ITEM_RELEASE_WHEN_COMMITTED/20210504-123005
git checkout 49245f53b5151023638e214a6f0817452b67c887
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64
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 >>):
In file included from fs/xfs/xfs_trace.c:22:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
1 error generated.
--
In file included from fs/xfs/xfs_file.c:14:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
In file included from fs/xfs/xfs_file.c:30:
include/linux/mman.h:156:9: warning: division by zero is undefined [-Wdivision-by-zero]
_calc_vm_trans(flags, MAP_SYNC, VM_SYNC ) |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/mman.h:133:21: note: expanded from macro '_calc_vm_trans'
: ((x) & (bit1)) / ((bit1) / (bit2))))
^ ~~~~~~~~~~~~~~~~~
1 warning and 1 error generated.
--
In file included from fs/xfs/xfs_bmap_item.c:16:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
>> fs/xfs/xfs_bmap_item.c:209:3: error: field designator 'iop_comitted' does not refer to any field in type 'const struct xfs_item_ops'; did you mean 'iop_committed'?
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~
iop_committed
fs/xfs/xfs_trans.h:73:14: note: 'iop_committed' declared here
xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t);
^
>> fs/xfs/xfs_bmap_item.c:209:18: error: incompatible function pointer types initializing 'xfs_lsn_t (*)(struct xfs_log_item *, xfs_lsn_t)' (aka 'long long (*)(struct xfs_log_item *, long long)') with an expression of type 'xfs_lsn_t (struct xfs_log_item *)' (aka 'long long (struct xfs_log_item *)') [-Werror,-Wincompatible-function-pointer-types]
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
--
In file included from fs/xfs/xfs_extfree_item.c:15:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
>> fs/xfs/xfs_extfree_item.c:313:3: error: field designator 'iop_comitted' does not refer to any field in type 'const struct xfs_item_ops'; did you mean 'iop_committed'?
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~
iop_committed
fs/xfs/xfs_trans.h:73:14: note: 'iop_committed' declared here
xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t);
^
>> fs/xfs/xfs_extfree_item.c:313:18: error: incompatible function pointer types initializing 'xfs_lsn_t (*)(struct xfs_log_item *, xfs_lsn_t)' (aka 'long long (*)(struct xfs_log_item *, long long)') with an expression of type 'xfs_lsn_t (struct xfs_log_item *)' (aka 'long long (struct xfs_log_item *)') [-Werror,-Wincompatible-function-pointer-types]
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
--
In file included from fs/xfs/xfs_icreate_item.c:14:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
>> fs/xfs/xfs_icreate_item.c:73:3: error: field designator 'iop_comitted' does not refer to any field in type 'const struct xfs_item_ops'; did you mean 'iop_committed'?
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~
iop_committed
fs/xfs/xfs_trans.h:73:14: note: 'iop_committed' declared here
xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t);
^
>> fs/xfs/xfs_icreate_item.c:73:18: error: incompatible function pointer types initializing 'xfs_lsn_t (*)(struct xfs_log_item *, xfs_lsn_t)' (aka 'long long (*)(struct xfs_log_item *, long long)') with an expression of type 'xfs_lsn_t (struct xfs_log_item *)' (aka 'long long (struct xfs_log_item *)') [-Werror,-Wincompatible-function-pointer-types]
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
--
In file included from fs/xfs/xfs_refcount_item.c:15:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
>> fs/xfs/xfs_refcount_item.c:214:3: error: field designator 'iop_comitted' does not refer to any field in type 'const struct xfs_item_ops'; did you mean 'iop_committed'?
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~
iop_committed
fs/xfs/xfs_trans.h:73:14: note: 'iop_committed' declared here
xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t);
^
>> fs/xfs/xfs_refcount_item.c:214:18: error: incompatible function pointer types initializing 'xfs_lsn_t (*)(struct xfs_log_item *, xfs_lsn_t)' (aka 'long long (*)(struct xfs_log_item *, long long)') with an expression of type 'xfs_lsn_t (struct xfs_log_item *)' (aka 'long long (struct xfs_log_item *)') [-Werror,-Wincompatible-function-pointer-types]
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
--
In file included from fs/xfs/xfs_rmap_item.c:15:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
>> fs/xfs/xfs_rmap_item.c:237:3: error: field designator 'iop_comitted' does not refer to any field in type 'const struct xfs_item_ops'; did you mean 'iop_committed'?
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~
iop_committed
fs/xfs/xfs_trans.h:73:14: note: 'iop_committed' declared here
xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t);
^
>> fs/xfs/xfs_rmap_item.c:237:18: error: incompatible function pointer types initializing 'xfs_lsn_t (*)(struct xfs_log_item *, xfs_lsn_t)' (aka 'long long (*)(struct xfs_log_item *, long long)') with an expression of type 'xfs_lsn_t (struct xfs_log_item *)' (aka 'long long (struct xfs_log_item *)') [-Werror,-Wincompatible-function-pointer-types]
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
vim +104 fs/xfs/xfs_trans.h
96
97 void xfs_log_item_init(struct xfs_mount *mp, struct xfs_log_item *item,
98 int type, const struct xfs_item_ops *ops);
99
100 /*
101 * Generic ->iop_committed callback to indicate that the log item should not be
102 * referenced by the caller once the callback returns.
103 */
> 104 xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
105
---
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: 38110 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] xfs: remove XFS_ITEM_RELEASE_WHEN_COMMITTED
@ 2021-05-04 9:04 ` kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-05-04 9:04 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 9833 bytes --]
Hi Dave,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on xfs-linux/for-next]
[also build test ERROR on v5.12 next-20210504]
[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/Dave-Chinner/xfs-remove-XFS_ITEM_RELEASE_WHEN_COMMITTED/20210504-123005
base: https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git for-next
config: x86_64-randconfig-a002-20210504 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8f5a2a5836cc8e4c1def2bdeb022e7b496623439)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/49245f53b5151023638e214a6f0817452b67c887
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Dave-Chinner/xfs-remove-XFS_ITEM_RELEASE_WHEN_COMMITTED/20210504-123005
git checkout 49245f53b5151023638e214a6f0817452b67c887
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64
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 >>):
In file included from fs/xfs/xfs_trace.c:22:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
1 error generated.
--
In file included from fs/xfs/xfs_file.c:14:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
In file included from fs/xfs/xfs_file.c:30:
include/linux/mman.h:156:9: warning: division by zero is undefined [-Wdivision-by-zero]
_calc_vm_trans(flags, MAP_SYNC, VM_SYNC ) |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/mman.h:133:21: note: expanded from macro '_calc_vm_trans'
: ((x) & (bit1)) / ((bit1) / (bit2))))
^ ~~~~~~~~~~~~~~~~~
1 warning and 1 error generated.
--
In file included from fs/xfs/xfs_bmap_item.c:16:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
>> fs/xfs/xfs_bmap_item.c:209:3: error: field designator 'iop_comitted' does not refer to any field in type 'const struct xfs_item_ops'; did you mean 'iop_committed'?
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~
iop_committed
fs/xfs/xfs_trans.h:73:14: note: 'iop_committed' declared here
xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t);
^
>> fs/xfs/xfs_bmap_item.c:209:18: error: incompatible function pointer types initializing 'xfs_lsn_t (*)(struct xfs_log_item *, xfs_lsn_t)' (aka 'long long (*)(struct xfs_log_item *, long long)') with an expression of type 'xfs_lsn_t (struct xfs_log_item *)' (aka 'long long (struct xfs_log_item *)') [-Werror,-Wincompatible-function-pointer-types]
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
--
In file included from fs/xfs/xfs_extfree_item.c:15:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
>> fs/xfs/xfs_extfree_item.c:313:3: error: field designator 'iop_comitted' does not refer to any field in type 'const struct xfs_item_ops'; did you mean 'iop_committed'?
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~
iop_committed
fs/xfs/xfs_trans.h:73:14: note: 'iop_committed' declared here
xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t);
^
>> fs/xfs/xfs_extfree_item.c:313:18: error: incompatible function pointer types initializing 'xfs_lsn_t (*)(struct xfs_log_item *, xfs_lsn_t)' (aka 'long long (*)(struct xfs_log_item *, long long)') with an expression of type 'xfs_lsn_t (struct xfs_log_item *)' (aka 'long long (struct xfs_log_item *)') [-Werror,-Wincompatible-function-pointer-types]
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
--
In file included from fs/xfs/xfs_icreate_item.c:14:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
>> fs/xfs/xfs_icreate_item.c:73:3: error: field designator 'iop_comitted' does not refer to any field in type 'const struct xfs_item_ops'; did you mean 'iop_committed'?
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~
iop_committed
fs/xfs/xfs_trans.h:73:14: note: 'iop_committed' declared here
xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t);
^
>> fs/xfs/xfs_icreate_item.c:73:18: error: incompatible function pointer types initializing 'xfs_lsn_t (*)(struct xfs_log_item *, xfs_lsn_t)' (aka 'long long (*)(struct xfs_log_item *, long long)') with an expression of type 'xfs_lsn_t (struct xfs_log_item *)' (aka 'long long (struct xfs_log_item *)') [-Werror,-Wincompatible-function-pointer-types]
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
--
In file included from fs/xfs/xfs_refcount_item.c:15:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
>> fs/xfs/xfs_refcount_item.c:214:3: error: field designator 'iop_comitted' does not refer to any field in type 'const struct xfs_item_ops'; did you mean 'iop_committed'?
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~
iop_committed
fs/xfs/xfs_trans.h:73:14: note: 'iop_committed' declared here
xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t);
^
>> fs/xfs/xfs_refcount_item.c:214:18: error: incompatible function pointer types initializing 'xfs_lsn_t (*)(struct xfs_log_item *, xfs_lsn_t)' (aka 'long long (*)(struct xfs_log_item *, long long)') with an expression of type 'xfs_lsn_t (struct xfs_log_item *)' (aka 'long long (struct xfs_log_item *)') [-Werror,-Wincompatible-function-pointer-types]
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
--
In file included from fs/xfs/xfs_rmap_item.c:15:
>> fs/xfs/xfs_trans.h:104:65: error: expected ';' after top level declarator
xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
^
;
>> fs/xfs/xfs_rmap_item.c:237:3: error: field designator 'iop_comitted' does not refer to any field in type 'const struct xfs_item_ops'; did you mean 'iop_committed'?
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~
iop_committed
fs/xfs/xfs_trans.h:73:14: note: 'iop_committed' declared here
xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t);
^
>> fs/xfs/xfs_rmap_item.c:237:18: error: incompatible function pointer types initializing 'xfs_lsn_t (*)(struct xfs_log_item *, xfs_lsn_t)' (aka 'long long (*)(struct xfs_log_item *, long long)') with an expression of type 'xfs_lsn_t (struct xfs_log_item *)' (aka 'long long (struct xfs_log_item *)') [-Werror,-Wincompatible-function-pointer-types]
.iop_comitted = xfs_log_item_committed_done,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
vim +104 fs/xfs/xfs_trans.h
96
97 void xfs_log_item_init(struct xfs_mount *mp, struct xfs_log_item *item,
98 int type, const struct xfs_item_ops *ops);
99
100 /*
101 * Generic ->iop_committed callback to indicate that the log item should not be
102 * referenced by the caller once the callback returns.
103 */
> 104 xfs_lsn_t xfs_log_item_committed_done(struct xfs_log_item *item)
105
---
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: 38110 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-05-04 9:04 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-04 4:28 [PATCH] xfs: remove XFS_ITEM_RELEASE_WHEN_COMMITTED Dave Chinner
2021-05-04 7:20 ` Dave Chinner
2021-05-04 9:04 ` kernel test robot
2021-05-04 9:04 ` kernel test robot
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.