lkml.org 
[lkml]   [2023]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] fuse: Track process write operations in both direct and writethrough modes
    Hi Zhou,

    kernel test robot noticed the following build warnings:

    https://git-scm.com/docs/git-format-patch#_base_tree_information]

    url: https://github.com/intel-lab-lkp/linux/commits/Zhou-Jifeng/fuse-Track-process-write-operations-in-both-direct-and-writethrough-modes/20231028-150119
    base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-next
    patch link: https://lore.kernel.org/r/20231028065912.6084-1-zhoujifeng%40kylinos.com.cn
    patch subject: [PATCH] fuse: Track process write operations in both direct and writethrough modes
    config: x86_64-randconfig-161-20231103 (https://download.01.org/0day-ci/archive/20231107/202311070338.uJNMq6Sh-lkp@intel.com/config)
    compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
    reproduce: (https://download.01.org/0day-ci/archive/20231107/202311070338.uJNMq6Sh-lkp@intel.com/reproduce)

    If you fix the issue in a separate patch/commit (i.e. not just a new version of
    the same patch/commit), kindly add following tags
    | Reported-by: kernel test robot <lkp@intel.com>
    | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
    | Closes: https://lore.kernel.org/r/202311070338.uJNMq6Sh-lkp@intel.com/

    smatch warnings:
    fs/fuse/file.c:1359 fuse_cache_write_iter() error: uninitialized symbol 'err'.

    vim +/err +1359 fs/fuse/file.c

    55752a3aba1387 Miklos Szeredi 2019-01-24 1302 static ssize_t fuse_cache_write_iter(struct kiocb *iocb, struct iov_iter *from)
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1303 {
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1304 struct file *file = iocb->ki_filp;
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1305 struct address_space *mapping = file->f_mapping;
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1306 ssize_t written = 0;
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1307 struct inode *inode = mapping->host;
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1308 ssize_t err;
    56597c4ddc107c Zhou Jifeng 2023-10-28 1309 ssize_t count;
    8981bdfda7445a Vivek Goyal 2020-10-09 1310 struct fuse_conn *fc = get_fuse_conn(inode);
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1311
    8981bdfda7445a Vivek Goyal 2020-10-09 1312 if (fc->writeback_cache) {
    4d99ff8f12eb20 Pavel Emelyanov 2013-10-10 1313 /* Update size (EOF optimization) and mode (SUID clearing) */
    c6c745b81033a4 Miklos Szeredi 2021-10-22 1314 err = fuse_update_attributes(mapping->host, file,
    c6c745b81033a4 Miklos Szeredi 2021-10-22 1315 STATX_SIZE | STATX_MODE);
    4d99ff8f12eb20 Pavel Emelyanov 2013-10-10 1316 if (err)
    4d99ff8f12eb20 Pavel Emelyanov 2013-10-10 1317 return err;
    4d99ff8f12eb20 Pavel Emelyanov 2013-10-10 1318
    8981bdfda7445a Vivek Goyal 2020-10-09 1319 if (fc->handle_killpriv_v2 &&
    9452e93e6dae86 Christian Brauner 2023-01-13 1320 setattr_should_drop_suidgid(&nop_mnt_idmap,
    9452e93e6dae86 Christian Brauner 2023-01-13 1321 file_inode(file))) {
    8981bdfda7445a Vivek Goyal 2020-10-09 1322 goto writethrough;
    8981bdfda7445a Vivek Goyal 2020-10-09 1323 }
    8981bdfda7445a Vivek Goyal 2020-10-09 1324
    84c3d55cc474f9 Al Viro 2014-04-03 1325 return generic_file_write_iter(iocb, from);
    4d99ff8f12eb20 Pavel Emelyanov 2013-10-10 1326 }
    4d99ff8f12eb20 Pavel Emelyanov 2013-10-10 1327
    8981bdfda7445a Vivek Goyal 2020-10-09 1328 writethrough:
    5955102c9984fa Al Viro 2016-01-22 1329 inode_lock(inode);
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1330
    56597c4ddc107c Zhou Jifeng 2023-10-28 1331 count = generic_write_checks(iocb, from);
    56597c4ddc107c Zhou Jifeng 2023-10-28 1332 if (count <= 0)
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1333 goto out;

    Missing error code?

    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1334
    56597c4ddc107c Zhou Jifeng 2023-10-28 1335 task_io_account_write(count);
    56597c4ddc107c Zhou Jifeng 2023-10-28 1336
    5fa8e0a1c6a762 Jan Kara 2015-05-21 1337 err = file_remove_privs(file);
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1338 if (err)
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1339 goto out;
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1340
    c3b2da31483449 Josef Bacik 2012-03-26 1341 err = file_update_time(file);
    c3b2da31483449 Josef Bacik 2012-03-26 1342 if (err)
    c3b2da31483449 Josef Bacik 2012-03-26 1343 goto out;
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1344
    2ba48ce513c4e5 Al Viro 2015-04-09 1345 if (iocb->ki_flags & IOCB_DIRECT) {
    1af5bb491fbb41 Christoph Hellwig 2016-04-07 1346 written = generic_file_direct_write(iocb, from);
    84c3d55cc474f9 Al Viro 2014-04-03 1347 if (written < 0 || !iov_iter_count(from))
    4273b793ec6875 Anand Avati 2012-02-17 1348 goto out;
    64d1b4dd826d88 Christoph Hellwig 2023-06-01 1349 written = direct_write_fallback(iocb, from, written,
    64d1b4dd826d88 Christoph Hellwig 2023-06-01 1350 fuse_perform_write(iocb, from));
    4273b793ec6875 Anand Avati 2012-02-17 1351 } else {
    596df33d673d9d Christoph Hellwig 2023-06-01 1352 written = fuse_perform_write(iocb, from);
    4273b793ec6875 Anand Avati 2012-02-17 1353 }
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1354 out:
    5955102c9984fa Al Viro 2016-01-22 1355 inode_unlock(inode);
    e1c0eecba1a415 Miklos Szeredi 2017-09-12 1356 if (written > 0)
    e1c0eecba1a415 Miklos Szeredi 2017-09-12 1357 written = generic_write_sync(iocb, written);
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1358
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 @1359 return written ? written : err;
    ea9b9907b82a09 Nicholas Piggin 2008-04-30 1360 }

    --
    0-DAY CI Kernel Test Service
    https://github.com/intel/lkp-tests/wiki

    \
     
     \ /
      Last update: 2023-11-20 13:51    [W:4.434 / U:0.376 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site