TO: Dave Chinner <da...@fromorbit.com>

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   b0a12fb5bc87820b12df22c64dd680a96443de00
commit: 7dcf5c3e4527cfa2807567b00387cf2ed5e07f00 [6253/8741] xfs: add 
RENAME_WHITEOUT support
:::::: branch date: 3 days ago
:::::: commit date: 12 days ago

New smatch warnings:
fs/xfs/xfs_inode.c:2914 xfs_rename() warn: variable dereferenced before check 
'wip' (see line 2874)

Old smatch warnings:
fs/xfs/xfs_inode.c:357 xfs_lock_inodes() error: buffer overflow 'ips' 4 <= 4
fs/xfs/xfs_inode.c:359 xfs_lock_inodes() error: buffer overflow 'ips' 4 <= 4
fs/xfs/xfs_inode.c:381 xfs_lock_inodes() error: buffer overflow 'ips' 4 <= 4
fs/xfs/xfs_inode.c:387 xfs_lock_inodes() error: buffer overflow 'ips' 4 <= 4
fs/xfs/xfs_inode.c:401 xfs_lock_inodes() error: buffer overflow 'ips' 4 <= 4
fs/xfs/xfs_inode.c:2932 xfs_rename() error: we previously assumed 'target_ip' 
could be null (see line 2912)

git remote add next 
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git remote update next
git checkout 7dcf5c3e4527cfa2807567b00387cf2ed5e07f00
vim +/wip +2914 fs/xfs/xfs_inode.c

7dcf5c3e Dave Chinner 2015-03-25  2868                          return error;
7dcf5c3e Dave Chinner 2015-03-25  2869  
7dcf5c3e Dave Chinner 2015-03-25  2870                  /* setup target dirent 
info as whiteout */
7dcf5c3e Dave Chinner 2015-03-25  2871                  src_name->type = 
XFS_DIR3_FT_CHRDEV;
7dcf5c3e Dave Chinner 2015-03-25  2872          }
f6bba201 Dave Chinner 2013-08-12  2873  
7dcf5c3e Dave Chinner 2015-03-25 @2874          xfs_sort_for_rename(src_dp, 
target_dp, src_ip, target_ip, wip,
f6bba201 Dave Chinner 2013-08-12  2875                                  inodes, 
&num_inodes);
f6bba201 Dave Chinner 2013-08-12  2876  
f6bba201 Dave Chinner 2013-08-12  2877          tp = xfs_trans_alloc(mp, 
XFS_TRANS_RENAME);
f6bba201 Dave Chinner 2013-08-12  2878          spaceres = 
XFS_RENAME_SPACE_RES(mp, target_name->len);
3d3c8b52 Jie Liu      2013-08-12  2879          error = xfs_trans_reserve(tp, 
&M_RES(mp)->tr_rename, spaceres, 0);
2451337d Dave Chinner 2014-06-25  2880          if (error == -ENOSPC) {
f6bba201 Dave Chinner 2013-08-12  2881                  spaceres = 0;
3d3c8b52 Jie Liu      2013-08-12  2882                  error = 
xfs_trans_reserve(tp, &M_RES(mp)->tr_rename, 0, 0);
f6bba201 Dave Chinner 2013-08-12  2883          }
445883e8 Dave Chinner 2015-03-25  2884          if (error)
445883e8 Dave Chinner 2015-03-25  2885                  goto out_trans_cancel;
445883e8 Dave Chinner 2015-03-25  2886          cancel_flags = 
XFS_TRANS_RELEASE_LOG_RES;
f6bba201 Dave Chinner 2013-08-12  2887  
f6bba201 Dave Chinner 2013-08-12  2888          /*
f6bba201 Dave Chinner 2013-08-12  2889           * Attach the dquots to the 
inodes
f6bba201 Dave Chinner 2013-08-12  2890           */
f6bba201 Dave Chinner 2013-08-12  2891          error = 
xfs_qm_vop_rename_dqattach(inodes);
445883e8 Dave Chinner 2015-03-25  2892          if (error)
445883e8 Dave Chinner 2015-03-25  2893                  goto out_trans_cancel;
f6bba201 Dave Chinner 2013-08-12  2894  
f6bba201 Dave Chinner 2013-08-12  2895          /*
f6bba201 Dave Chinner 2013-08-12  2896           * Lock all the participating 
inodes. Depending upon whether
f6bba201 Dave Chinner 2013-08-12  2897           * the target_name exists in 
the target directory, and
f6bba201 Dave Chinner 2013-08-12  2898           * whether the target directory 
is the same as the source
f6bba201 Dave Chinner 2013-08-12  2899           * directory, we can lock from 
2 to 4 inodes.
f6bba201 Dave Chinner 2013-08-12  2900           */
f6bba201 Dave Chinner 2013-08-12  2901          xfs_lock_inodes(inodes, 
num_inodes, XFS_ILOCK_EXCL);
f6bba201 Dave Chinner 2013-08-12  2902  
f6bba201 Dave Chinner 2013-08-12  2903          /*
f6bba201 Dave Chinner 2013-08-12  2904           * Join all the inodes to the 
transaction. From this point on,
f6bba201 Dave Chinner 2013-08-12  2905           * we can rely on either 
trans_commit or trans_cancel to unlock
f6bba201 Dave Chinner 2013-08-12  2906           * them.
f6bba201 Dave Chinner 2013-08-12  2907           */
f6bba201 Dave Chinner 2013-08-12  2908          xfs_trans_ijoin(tp, src_dp, 
XFS_ILOCK_EXCL);
f6bba201 Dave Chinner 2013-08-12  2909          if (new_parent)
f6bba201 Dave Chinner 2013-08-12  2910                  xfs_trans_ijoin(tp, 
target_dp, XFS_ILOCK_EXCL);
f6bba201 Dave Chinner 2013-08-12  2911          xfs_trans_ijoin(tp, src_ip, 
XFS_ILOCK_EXCL);
f6bba201 Dave Chinner 2013-08-12  2912          if (target_ip)
f6bba201 Dave Chinner 2013-08-12  2913                  xfs_trans_ijoin(tp, 
target_ip, XFS_ILOCK_EXCL);
7dcf5c3e Dave Chinner 2015-03-25 @2914          if (wip)
7dcf5c3e Dave Chinner 2015-03-25  2915                  xfs_trans_ijoin(tp, 
wip, XFS_ILOCK_EXCL);
f6bba201 Dave Chinner 2013-08-12  2916  
f6bba201 Dave Chinner 2013-08-12  2917          /*

---
0-DAY kernel test infrastructure                Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild                 Intel Corporation
_______________________________________________
kbuild mailing list
kbuild@lists.01.org
https://lists.01.org/mailman/listinfo/kbuild

Reply via email to