[josef-btrfs:new-kill-btree-inode 22/22] fs/btrfs/send.c:6412:35: error: storage size of 'args32' isn't known

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next.git new-kill-btree-inode
head:   f2213041f761c4972696a8dabfad3c8bac9ffde2
commit: f2213041f761c4972696a8dabfad3c8bac9ffde2 [22/22] btrfs: fix send ioctl on 32bit with 64bit kernel
config: i386-randconfig-x000-201739 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        git checkout f2213041f761c4972696a8dabfad3c8bac9ffde2
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   fs/btrfs/send.c: In function 'btrfs_ioctl_send':
>> fs/btrfs/send.c:6412:35: error: storage size of 'args32' isn't known
      struct btrfs_ioctl_send_args_32 args32;
                                      ^~~~~~
>> fs/btrfs/send.c:6425:24: error: implicit declaration of function 'compat_ptr' [-Werror=implicit-function-declaration]
      arg->clone_sources = compat_ptr(args32.clone_sources);
                           ^~~~~~~~~~
   fs/btrfs/send.c:6412:35: warning: unused variable 'args32' [-Wunused-variable]
      struct btrfs_ioctl_send_args_32 args32;
                                      ^~~~~~
   cc1: some warnings being treated as errors

vim +6412 fs/btrfs/send.c

  6368	
  6369	long btrfs_ioctl_send(struct file *mnt_file, void __user *arg_, bool compat)
  6370	{
  6371		int ret = 0;
  6372		struct btrfs_root *send_root = BTRFS_I(file_inode(mnt_file))->root;
  6373		struct btrfs_fs_info *fs_info = send_root->fs_info;
  6374		struct btrfs_root *clone_root;
  6375		struct btrfs_ioctl_send_args *arg = NULL;
  6376		struct btrfs_key key;
  6377		struct send_ctx *sctx = NULL;
  6378		u32 i;
  6379		u64 *clone_sources_tmp = NULL;
  6380		int clone_sources_to_rollback = 0;
  6381		unsigned alloc_size;
  6382		int sort_clone_roots = 0;
  6383		int index;
  6384	
  6385		if (!capable(CAP_SYS_ADMIN))
  6386			return -EPERM;
  6387	
  6388		/*
  6389		 * The subvolume must remain read-only during send, protect against
  6390		 * making it RW. This also protects against deletion.
  6391		 */
  6392		spin_lock(&send_root->root_item_lock);
  6393		send_root->send_in_progress++;
  6394		spin_unlock(&send_root->root_item_lock);
  6395	
  6396		/*
  6397		 * This is done when we lookup the root, it should already be complete
  6398		 * by the time we get here.
  6399		 */
  6400		WARN_ON(send_root->orphan_cleanup_state != ORPHAN_CLEANUP_DONE);
  6401	
  6402		/*
  6403		 * Userspace tools do the checks and warn the user if it's
  6404		 * not RO.
  6405		 */
  6406		if (!btrfs_root_readonly(send_root)) {
  6407			ret = -EPERM;
  6408			goto out;
  6409		}
  6410	
  6411		if (compat) {
> 6412			struct btrfs_ioctl_send_args_32 args32;
  6413			ret = copy_from_user(&args32, arg_, sizeof(args32));
  6414			if (ret) {
  6415				btrfs_err(fs_info, "args32 copy failed\n");
  6416				goto out;
  6417			}
  6418			arg = kzalloc(sizeof(*arg), GFP_KERNEL);
  6419			if (!arg) {
  6420				ret = -ENOMEM;
  6421				goto out;
  6422			}
  6423			arg->send_fd = args32.send_fd;
  6424			arg->clone_sources_count = args32.clone_sources_count;
> 6425			arg->clone_sources = compat_ptr(args32.clone_sources);

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux