Running stress-ng on ocfs2 completely fills the kernel log with 'max
lookup times reached, filesystem may have nested directories.'
Let's ratelimit this message as done with others in the code.
Test-case:
  # mkfs.ocfs2 --mount local $DEV
  # mount $DEV $MNT
  # cd $MNT
  # dmesg -C
  # stress-ng --dirdeep 1 --dirdeep-ops 1000
  # dmesg | grep -c 'max lookup times reached'
Before:
  # dmesg -C
  # stress-ng --dirdeep 1 --dirdeep-ops 1000
  ...
  stress-ng: info:  [11116] successful run completed in 3.03s
  # dmesg | grep -c 'max lookup times reached'
  967
After:
  # dmesg -C
  # stress-ng --dirdeep 1 --dirdeep-ops 1000
  ...
  stress-ng: info:  [739] successful run completed in 0.96s
  # dmesg | grep -c 'max lookup times reached'
  10
  # dmesg
  [  259.086086] ocfs2_check_if_ancestor: 1990 callbacks suppressed
  [  259.086092] (stress-ng-dirde,740,1):ocfs2_check_if_ancestor:1091 max lookup times reached, filesystem may have nested directories, src inode: 18007, dest inode: 17940.
  ...
Link: https://lkml.kernel.org/r/20201001224417.478263-1-mfo@canonical.com
Signed-off-by: Mauricio Faria de Oliveira <mfo@canonical.com>
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Gang He <ghe@suse.com>
Cc: Jun Piao <piaojun@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
 
                child_inode_no = parent_inode_no;
 
                if (++i >= MAX_LOOKUP_TIMES) {
-                       mlog(ML_NOTICE, "max lookup times reached, filesystem "
-                                       "may have nested directories, "
+                       mlog_ratelimited(ML_NOTICE, "max lookup times reached, "
+                                       "filesystem may have nested directories, "
                                        "src inode: %llu, dest inode: %llu.\n",
                                        (unsigned long long)src_inode_no,
                                        (unsigned long long)dest_inode_no);