[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <202201260759.edlA9lHT-lkp@intel.com>
Date: Wed, 26 Jan 2022 07:12:14 +0800
From: kernel test robot <lkp@...el.com>
To: Filipe Manana <fdmanana@...e.com>
Cc: kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
David Sterba <dsterba@...e.com>, linux-doc@...r.kernel.org
Subject: [kdave-btrfs-devel:misc-next 149/153] fs/btrfs/tree-log.c:6755:
warning: This comment starts with '/**', but isn't a kernel-doc comment.
Refer Documentation/doc-guide/kernel-doc.rst
tree: https://github.com/kdave/btrfs-devel.git misc-next
head: 8e5d6a5c062f370d4d0b2dace7e95ab40c6ce3dd
commit: 6bfc5d45946acd8286fb026137f20ee8747a50f1 [149/153] btrfs: pass the dentry to btrfs_log_new_name() instead of the inode
config: nds32-allyesconfig (https://download.01.org/0day-ci/archive/20220126/202201260759.edlA9lHT-lkp@intel.com/config)
compiler: nds32le-linux-gcc (GCC) 11.2.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/kdave/btrfs-devel/commit/6bfc5d45946acd8286fb026137f20ee8747a50f1
git remote add kdave-btrfs-devel https://github.com/kdave/btrfs-devel.git
git fetch --no-tags kdave-btrfs-devel misc-next
git checkout 6bfc5d45946acd8286fb026137f20ee8747a50f1
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=nds32 SHELL=/bin/bash fs/btrfs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>
All warnings (new ones prefixed by >>):
>> fs/btrfs/tree-log.c:6755: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Update the log after adding a new name for an inode.
vim +6755 fs/btrfs/tree-log.c
6753
6754 /**
> 6755 * Update the log after adding a new name for an inode.
6756 *
6757 * @trans: Transaction handle.
6758 * @old_dentry: The dentry associated with the old name and the old
6759 * parent directory.
6760 * @old_dir: The inode of the previous parent directory for the case
6761 * of a rename. For a link operation, it must be NULL.
6762 * @parent: The dentry associated with the directory under which the
6763 * new name is located.
6764 *
6765 * Call this after adding a new name for an inode, as a result of a link or
6766 * rename operation, and it will properly update the log to reflect the new name.
6767 */
6768 void btrfs_log_new_name(struct btrfs_trans_handle *trans,
6769 struct dentry *old_dentry, struct btrfs_inode *old_dir,
6770 struct dentry *parent)
6771 {
6772 struct btrfs_inode *inode = BTRFS_I(d_inode(old_dentry));
6773 struct btrfs_log_ctx ctx;
6774
6775 /*
6776 * this will force the logging code to walk the dentry chain
6777 * up for the file
6778 */
6779 if (!S_ISDIR(inode->vfs_inode.i_mode))
6780 inode->last_unlink_trans = trans->transid;
6781
6782 /*
6783 * if this inode hasn't been logged and directory we're renaming it
6784 * from hasn't been logged, we don't need to log it
6785 */
6786 if (!inode_logged(trans, inode) &&
6787 (!old_dir || !inode_logged(trans, old_dir)))
6788 return;
6789
6790 /*
6791 * If we are doing a rename (old_dir is not NULL) from a directory that
6792 * was previously logged, make sure the next log attempt on the directory
6793 * is not skipped and logs the inode again. This is because the log may
6794 * not currently be authoritative for a range including the old
6795 * BTRFS_DIR_INDEX_KEY key, so we want to make sure after a log replay we
6796 * do not end up with both the new and old dentries around (in case the
6797 * inode is a directory we would have a directory with two hard links and
6798 * 2 inode references for different parents). The next log attempt of
6799 * old_dir will happen at btrfs_log_all_parents(), called through
6800 * btrfs_log_inode_parent() below, because we have previously set
6801 * inode->last_unlink_trans to the current transaction ID, either here or
6802 * at btrfs_record_unlink_dir() in case the inode is a directory.
6803 */
6804 if (old_dir)
6805 old_dir->logged_trans = 0;
6806
6807 btrfs_init_log_ctx(&ctx, &inode->vfs_inode);
6808 ctx.logging_new_name = true;
6809 /*
6810 * We don't care about the return value. If we fail to log the new name
6811 * then we know the next attempt to sync the log will fallback to a full
6812 * transaction commit (due to a call to btrfs_set_log_full_commit()), so
6813 * we don't need to worry about getting a log committed that has an
6814 * inconsistent state after a rename operation.
6815 */
6816 btrfs_log_inode_parent(trans, inode, parent, LOG_INODE_EXISTS, &ctx);
6817 }
6818
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Powered by blists - more mailing lists