lkml.org 
[lkml]   [2017]   [Oct]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] ext4: Log inode exhaustion to dmesg
    Hi Team,

    [auto build test ERROR on ext4/dev]
    [also build test ERROR on v4.14-rc6 next-20171018]
    [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

    url: https://github.com/0day-ci/linux/commits/Team-Athena/ext4-Log-inode-exhaustion-to-dmesg/20171023-222824
    base: https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git dev
    config: i386-randconfig-x001-201743 (attached as .config)
    compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
    reproduce:
    # save the attached .config to linux build tree
    make ARCH=i386

    All error/warnings (new ones prefixed by >>):

    In file included from include/linux/kernel.h:13:0,
    from include/linux/list.h:8,
    from include/linux/wait.h:6,
    from include/linux/wait_bit.h:7,
    from include/linux/fs.h:5,
    from fs/ext4/namei.c:27:
    fs/ext4/namei.c: In function 'ext4_create':
    >> include/linux/printk.h:422:3: error: too few arguments to function 'printk'
    printk(fmt, ##__VA_ARGS__); \
    ^
    >> fs/ext4/namei.c:2466:29: note: in expansion of macro 'printk_ratelimited'
    else if (err == -ENOSPC && printk_ratelimited())
    ^~~~~~~~~~~~~~~~~~
    In file included from include/linux/kernel.h:13:0,
    from include/linux/list.h:8,
    from include/linux/wait.h:6,
    from include/linux/wait_bit.h:7,
    from include/linux/fs.h:5,
    from fs/ext4/namei.c:27:
    include/linux/printk.h:172:5: note: declared here
    int printk(const char *fmt, ...);
    ^~~~~~
    In file included from include/linux/kernel.h:13:0,
    from include/linux/list.h:8,
    from include/linux/wait.h:6,
    from include/linux/wait_bit.h:7,
    from include/linux/fs.h:5,
    from fs/ext4/namei.c:27:
    >> include/linux/printk.h:416:2: error: void value not ignored as it ought to be
    ({ \
    ~^~~~~~~~~~~
    static DEFINE_RATELIMIT_STATE(_rs, \
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    DEFAULT_RATELIMIT_INTERVAL, \
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    DEFAULT_RATELIMIT_BURST); \
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    \
    ~
    if (__ratelimit(&_rs)) \
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    printk(fmt, ##__VA_ARGS__); \
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    })
    ~~
    >> fs/ext4/namei.c:2466:29: note: in expansion of macro 'printk_ratelimited'
    else if (err == -ENOSPC && printk_ratelimited())
    ^~~~~~~~~~~~~~~~~~
    >> fs/ext4/namei.c:2467:10: error: 'pr_warning' undeclared (first use in this function)
    printk(pr_warning "ext4: No space on disk, inode usage full");
    ^~~~~~~~~~
    fs/ext4/namei.c:2467:10: note: each undeclared identifier is reported only once for each function it appears in
    >> fs/ext4/namei.c:2467:21: error: expected ')' before string constant
    printk(pr_warning "ext4: No space on disk, inode usage full");
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    --
    In file included from include/linux/kernel.h:13:0,
    from include/linux/list.h:8,
    from include/linux/wait.h:6,
    from include/linux/wait_bit.h:7,
    from include/linux/fs.h:5,
    from fs//ext4/namei.c:27:
    fs//ext4/namei.c: In function 'ext4_create':
    >> include/linux/printk.h:422:3: error: too few arguments to function 'printk'
    printk(fmt, ##__VA_ARGS__); \
    ^
    fs//ext4/namei.c:2466:29: note: in expansion of macro 'printk_ratelimited'
    else if (err == -ENOSPC && printk_ratelimited())
    ^~~~~~~~~~~~~~~~~~
    In file included from include/linux/kernel.h:13:0,
    from include/linux/list.h:8,
    from include/linux/wait.h:6,
    from include/linux/wait_bit.h:7,
    from include/linux/fs.h:5,
    from fs//ext4/namei.c:27:
    include/linux/printk.h:172:5: note: declared here
    int printk(const char *fmt, ...);
    ^~~~~~
    In file included from include/linux/kernel.h:13:0,
    from include/linux/list.h:8,
    from include/linux/wait.h:6,
    from include/linux/wait_bit.h:7,
    from include/linux/fs.h:5,
    from fs//ext4/namei.c:27:
    >> include/linux/printk.h:416:2: error: void value not ignored as it ought to be
    ({ \
    ~^~~~~~~~~~~
    static DEFINE_RATELIMIT_STATE(_rs, \
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    DEFAULT_RATELIMIT_INTERVAL, \
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    DEFAULT_RATELIMIT_BURST); \
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    \
    ~
    if (__ratelimit(&_rs)) \
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    printk(fmt, ##__VA_ARGS__); \
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    })
    ~~
    fs//ext4/namei.c:2466:29: note: in expansion of macro 'printk_ratelimited'
    else if (err == -ENOSPC && printk_ratelimited())
    ^~~~~~~~~~~~~~~~~~
    fs//ext4/namei.c:2467:10: error: 'pr_warning' undeclared (first use in this function)
    printk(pr_warning "ext4: No space on disk, inode usage full");
    ^~~~~~~~~~
    fs//ext4/namei.c:2467:10: note: each undeclared identifier is reported only once for each function it appears in
    fs//ext4/namei.c:2467:21: error: expected ')' before string constant
    printk(pr_warning "ext4: No space on disk, inode usage full");
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    vim +/pr_warning +2467 fs/ext4/namei.c

    2427
    2428 /*
    2429 * By the time this is called, we already have created
    2430 * the directory cache entry for the new file, but it
    2431 * is so far negative - it has no inode.
    2432 *
    2433 * If the create succeeds, we fill in the inode information
    2434 * with d_instantiate().
    2435 */
    2436 static int ext4_create(struct inode *dir, struct dentry *dentry, umode_t mode,
    2437 bool excl)
    2438 {
    2439 handle_t *handle;
    2440 struct inode *inode;
    2441 int err, credits, retries = 0;
    2442
    2443 err = dquot_initialize(dir);
    2444 if (err)
    2445 return err;
    2446
    2447 credits = (EXT4_DATA_TRANS_BLOCKS(dir->i_sb) +
    2448 EXT4_INDEX_EXTRA_TRANS_BLOCKS + 3);
    2449 retry:
    2450 inode = ext4_new_inode_start_handle(dir, mode, &dentry->d_name, 0,
    2451 NULL, EXT4_HT_DIR, credits);
    2452 handle = ext4_journal_current_handle();
    2453 err = PTR_ERR(inode);
    2454 if (!IS_ERR(inode)) {
    2455 inode->i_op = &ext4_file_inode_operations;
    2456 inode->i_fop = &ext4_file_operations;
    2457 ext4_set_aops(inode);
    2458 err = ext4_add_nondir(handle, dentry, inode);
    2459 if (!err && IS_DIRSYNC(dir))
    2460 ext4_handle_sync(handle);
    2461 }
    2462 if (handle)
    2463 ext4_journal_stop(handle);
    2464 if (err == -ENOSPC && ext4_should_retry_alloc(dir->i_sb, &retries))
    2465 goto retry;
    > 2466 else if (err == -ENOSPC && printk_ratelimited())
    > 2467 printk(pr_warning "ext4: No space on disk, inode usage full");
    2468 return err;
    2469 }
    2470

    ---
    0-DAY kernel test infrastructure Open Source Technology Center
    https://lists.01.org/pipermail/kbuild-all Intel Corporation
    [unhandled content-type:application/gzip]
    \
     
     \ /
      Last update: 2017-10-23 17:23    [W:4.980 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site