Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp711796ybl; Wed, 29 Jan 2020 08:22:46 -0800 (PST) X-Google-Smtp-Source: APXvYqw9JvS8X4wc4qP78lOVqImCVMgz36SLFgV2tfNiPi+UdN5+jQsccUGb9+iMhiBjxnX7wE3e X-Received: by 2002:a54:488d:: with SMTP id r13mr6596768oic.115.1580314965919; Wed, 29 Jan 2020 08:22:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580314965; cv=none; d=google.com; s=arc-20160816; b=GYN3tjJl68Z6Nx1HQiLbr3RQwHz67GpkGigMSWONlLKQWtvUO+C1kp3+wehX/UN91l 1m4DERI/hPqCHBEHmZwxa+dg1AMIJeqntUaieya34DLNIpiF5T9UQcGWA9itwJDxp3z5 k9Xv2gvL+0kruN/3hNRI9KT3AzBrHLvDCQPZDnA8aLvxVqr/wfwuf1fwcK3r4Ly39Z/c u9yp8PGy7Pm9fEjHzOzfQB3wwV8kPg8lUq801caKOTDlV5iwMQL1Dg3sEzt1erC+5tFD ltOl83VhHn7u7YGezv0ILoyZIKMIgPVKoWMNptZWKGbNvxdSS84uaypwn955SOTo8hUg wsfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:mail-followup-to :reply-to:message-id:subject:cc:to:from:date; bh=o7dNQPsSpA5awIkl9DOIDN9Z8DrpaG7lGj/pu4HbaGs=; b=TXt3AYzFLQQupSIbSs4S0K6VTtNnnL32aMfHaTlcWPUGRaHks3P3ea7eC+HzjM3RlA O4K0QmDM6QedO2WZTS7t0ylcTQ/gcwpDsf25Cnu++tS0XKOUaxy0TTpmvWD8nMk035JY 1/uAtwDs+TCGUMvEKhA6N63aNrFtFcX4d+1lqEmKnXpgDnBr+2GwdW+3GvrDf9+eMhS6 u6XAuj9R951ulMRq6csIWn49XeS5aeqiP3pU5AvDB8vy0g4J0x9lhNuPVc7rY5O/QIdB Iff0tLjF/REab9x6cMDT4/Yd6Up6wL/r3rBCiKS3rIP2zwvqEhVWxG49WNCu59nh6ZtX 5wBw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e13si1339617otr.167.2020.01.29.08.22.31; Wed, 29 Jan 2020 08:22:45 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726948AbgA2QMh (ORCPT + 99 others); Wed, 29 Jan 2020 11:12:37 -0500 Received: from mx2.suse.de ([195.135.220.15]:50088 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726564AbgA2QMg (ORCPT ); Wed, 29 Jan 2020 11:12:36 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id C8699ADB3; Wed, 29 Jan 2020 16:12:34 +0000 (UTC) Received: by ds.suse.cz (Postfix, from userid 10065) id 21DFDDA730; Wed, 29 Jan 2020 17:12:14 +0100 (CET) Date: Wed, 29 Jan 2020 17:12:14 +0100 From: David Sterba To: Marcos Paulo de Souza Cc: dsterba@suse.cz, linux-kernel@vger.kernel.org, dsterba@suse.com, josef@toxicpanda.com, linux-btrfs@vger.kernel.org, Marcos Paulo de Souza Subject: Re: [PATCHv2] btrfs: Introduce new BTRFS_IOC_SNAP_DESTROY_V2 ioctl Message-ID: <20200129161214.GJ3929@twin.jikos.cz> Reply-To: dsterba@suse.cz Mail-Followup-To: dsterba@suse.cz, Marcos Paulo de Souza , linux-kernel@vger.kernel.org, dsterba@suse.com, josef@toxicpanda.com, linux-btrfs@vger.kernel.org, Marcos Paulo de Souza References: <20200127024817.15587-1-marcos.souza.org@gmail.com> <20200128172638.GA3929@twin.jikos.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23.1-rc1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 29, 2020 at 12:07:40PM -0300, Marcos Paulo de Souza wrote: > > > - vol_args->name[BTRFS_PATH_NAME_MAX] = '\0'; > > > - namelen = strlen(vol_args->name); > > > - if (strchr(vol_args->name, '/') || > > > - strncmp(vol_args->name, "..", namelen) == 0) { > > > - err = -EINVAL; > > > - goto out; > > > + if (!(vol_args2->flags & BTRFS_SUBVOL_BY_ID)) { > > > + err = -EINVAL; > > > + goto out; > > > > The flag validation needs to be factored out of the if. First > > validate, > > then do the rest. For backward compatibility, the v1 ioctl must take > > no > > flags, so if theres BTRFS_SUBVOL_BY_ID for v1, it needs to fail. For > > v2 > > the flag is optional. > > Only vol_args_v2 has the flags field, so for current > BTRFS_IOC_SNAP_DESTORY there won't be any flags. If we drop the check > for BTRFS_SUBVOL_BY_ID in BTRFS_IOC_SNAP_DESTORY_V2, so won't check for > this flag at all, making it meaningless. Oh right, so the validation applies only to v2 and in that case it's fine to keep it in the place you have it. > What do you think? Should we drop this flag at all and just rely in the > ioctl number + subvolid being informed? No, v2 should work for both deletion by name and by id. It's going to supersede v1 that has to stay for backward compatibility, but must provide complete functionality of v1 to keep the usability sane.