From owner-freebsd-fs@freebsd.org Thu Nov 1 08:11:15 2018 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B09F510F078D for ; Thu, 1 Nov 2018 08:11:15 +0000 (UTC) (envelope-from agapon@gmail.com) Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 240286F724 for ; Thu, 1 Nov 2018 08:11:14 +0000 (UTC) (envelope-from agapon@gmail.com) Received: by mail-wm1-f41.google.com with SMTP id l2-v6so594339wmh.3 for ; Thu, 01 Nov 2018 01:11:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=u1K8EpMYr76ZMTGNvpJAqYleHiLEe2UiXgQaHmr0nRQ=; b=ftxG/m3MaPXqLYE4tU9X2cePxSly8Mb5f/hF3R93OjlYY4UIgyAlWm+b9/MX+xf0r/ BS38gejtqwPV9ZNzvxW5/DJL/7tUe7JzoNLIbMF3AB9cOJvtHz7+HeNvROgKtBMIDPDG 5URQ5XonuXtfwASTZstQNS5heUHGCewOoS9DR03vhUfgA7ILXqJ1hw/PiIgW4XKtDHJ/ MR9aPXO7OmMp/r54iO22YaVnYDEJJi8QbCWn9c6V7BJw57lvrMo5mU16ib2/7bSZxPnu IMiMswNbaexjTSKCypJemFFJgkggBS/BiYRji1V8pbscPshrQ4Wr35wwQ4dFMC4qihrU 2//A== X-Gm-Message-State: AGRZ1gJ0gmEnD+X4tjIlyr8Blfnvw99TY2dYXg+rzgKfBEEhN/Y1Yw9L PFuBGIiEgBzdPRy4S58PYt75Juvx X-Google-Smtp-Source: AJdET5cIGFUqnvKwuxsxNGS4cWikujVmQUFtUq2yUF32Gu8UnE1DM58KVo4rq1v+aUtjTmDf7mPHyQ== X-Received: by 2002:a1c:c016:: with SMTP id q22-v6mr4718459wmf.151.1541056635427; Thu, 01 Nov 2018 00:17:15 -0700 (PDT) Received: from [192.168.0.88] (east.meadow.volia.net. [93.72.151.96]) by smtp.googlemail.com with ESMTPSA id q17-v6sm1930001wrw.17.2018.11.01.00.17.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 01 Nov 2018 00:17:14 -0700 (PDT) Subject: Re: How to fill in the fsid for file systems? To: Rick Macklem , Konstantin Belousov Cc: FreeBSD Filesystems , Josh Paetzel References: <20181030012240.GM5335@kib.kiev.ua> From: Andriy Gapon Openpgp: preference=signencrypt Autocrypt: addr=avg@FreeBSD.org; prefer-encrypt=mutual; keydata= xsFNBFm4LIgBEADNB/3lT7f15UKeQ52xCFQx/GqHkSxEdVyLFZTmY3KyNPQGBtyvVyBfprJ7 mAeXZWfhat6cKNRAGZcL5EmewdQuUfQfBdYmKjbw3a9GFDsDNuhDA2QwFt8BmkiVMRYyvI7l N0eVzszWCUgdc3qqM6qqcgBaqsVmJluwpvwp4ZBXmch5BgDDDb1MPO8AZ2QZfIQmplkj8Y6Z AiNMknkmgaekIINSJX8IzRzKD5WwMsin70psE8dpL/iBsA2cpJGzWMObVTtCxeDKlBCNqM1i gTXta1ukdUT7JgLEFZk9ceYQQMJJtUwzWu1UHfZn0Fs29HTqawfWPSZVbulbrnu5q55R4PlQ /xURkWQUTyDpqUvb4JK371zhepXiXDwrrpnyyZABm3SFLkk2bHlheeKU6Yql4pcmSVym1AS4 dV8y0oHAfdlSCF6tpOPf2+K9nW1CFA8b/tw4oJBTtfZ1kxXOMdyZU5fiG7xb1qDgpQKgHUX8 7Rd2T1UVLVeuhYlXNw2F+a2ucY+cMoqz3LtpksUiBppJhw099gEXehcN2JbUZ2TueJdt1FdS ztnZmsHUXLxrRBtGwqnFL7GSd6snpGIKuuL305iaOGODbb9c7ne1JqBbkw1wh8ci6vvwGlzx rexzimRaBzJxlkjNfMx8WpCvYebGMydNoeEtkWldtjTNVsUAtQARAQABzR5BbmRyaXkgR2Fw b24gPGF2Z0BGcmVlQlNELm9yZz7CwZQEEwEIAD4WIQS+LEO7ngQnXA4Bjr538m7TUc1yjwUC WbgsiAIbIwUJBaOagAULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRB38m7TUc1yj+JAEACV l9AK/nOWAt/9cufV2fRj0hdOqB1aCshtSrwHk/exXsDa4/FkmegxXQGY+3GWX3deIyesbVRL rYdtdK0dqJyT1SBqXK1h3/at9rxr9GQA6KWOxTjUFURsU7ok/6SIlm8uLRPNKO+yq0GDjgaO LzN+xykuBA0FlhQAXJnpZLcVfPJdWv7sSHGedL5ln8P8rxR+XnmsA5TUaaPcbhTB+mG+iKFj GghASDSfGqLWFPBlX/fpXikBDZ1gvOr8nyMY9nXhgfXpq3B6QCRYKPy58ChrZ5weeJZ29b7/ QdEO8NFNWHjSD9meiLdWQaqo9Y7uUxN3wySc/YUZxtS0bhAd8zJdNPsJYG8sXgKjeBQMVGuT eCAJFEYJqbwWvIXMfVWop4+O4xB+z2YE3jAbG/9tB/GSnQdVSj3G8MS80iLS58frnt+RSEw/ psahrfh0dh6SFHttE049xYiC+cM8J27Aaf0i9RflyITq57NuJm+AHJoU9SQUkIF0nc6lfA+o JRiyRlHZHKoRQkIg4aiKaZSWjQYRl5Txl0IZUP1dSWMX4s3XTMurC/pnja45dge/4ESOtJ9R 8XuIWg45Oq6MeIWdjKddGhRj3OohsltKgkEU3eLKYtB6qRTQypHHUawCXz88uYt5e3w4V16H lCpSTZV/EVHnNe45FVBlvK7k7HFfDDkryM7BTQRZuCyIARAAlq0slcsVboY/+IUJdcbEiJRW be9HKVz4SUchq0z9MZPX/0dcnvz/gkyYA+OuM78dNS7Mbby5dTvOqfpLJfCuhaNYOhlE0wY+ 1T6Tf1f4c/uA3U/YiadukQ3+6TJuYGAdRZD5EqYFIkreARTVWg87N9g0fT9BEqLw9lJtEGDY EWUE7L++B8o4uu3LQFEYxcrb4K/WKmgtmFcm77s0IKDrfcX4doV92QTIpLiRxcOmCC/OCYuO jB1oaaqXQzZrCutXRK0L5XN1Y1PYjIrEzHMIXmCDlLYnpFkK+itlXwlE2ZQxkfMruCWdQXye syl2fynAe8hvp7Mms9qU2r2K9EcJiR5N1t1C2/kTKNUhcRv7Yd/vwusK7BqJbhlng5ZgRx0m WxdntU/JLEntz3QBsBsWM9Y9wf2V4tLv6/DuDBta781RsCB/UrU2zNuOEkSixlUiHxw1dccI 6CVlaWkkJBxmHX22GdDFrcjvwMNIbbyfQLuBq6IOh8nvu9vuItup7qemDG3Ms6TVwA7BD3j+ 3fGprtyW8Fd/RR2bW2+LWkMrqHffAr6Y6V3h5kd2G9Q8ZWpEJk+LG6Mk3fhZhmCnHhDu6CwN MeUvxXDVO+fqc3JjFm5OxhmfVeJKrbCEUJyM8ESWLoNHLqjywdZga4Q7P12g8DUQ1mRxYg/L HgZY3zfKOqcAEQEAAcLBfAQYAQgAJhYhBL4sQ7ueBCdcDgGOvnfybtNRzXKPBQJZuCyIAhsM BQkFo5qAAAoJEHfybtNRzXKPBVwQAKfFy9P7N3OsLDMB56A4Kf+ZT+d5cIx0Yiaf4n6w7m3i ImHHHk9FIetI4Xe54a2IXh4Bq5UkAGY0667eIs+Z1Ea6I2i27Sdo7DxGwq09Qnm/Y65ADvXs 3aBvokCcm7FsM1wky395m8xUos1681oV5oxgqeRI8/76qy0hD9WR65UW+HQgZRIcIjSel9vR XDaD2HLGPTTGr7u4v00UeTMs6qvPsa2PJagogrKY8RXdFtXvweQFz78NbXhluwix2Tb9ETPk LIpDrtzV73CaE2aqBG/KrboXT2C67BgFtnk7T7Y7iKq4/XvEdDWscz2wws91BOXuMMd4c/c4 OmGW9m3RBLufFrOag1q5yUS9QbFfyqL6dftJP3Zq/xe+mr7sbWbhPVCQFrH3r26mpmy841ym dwQnNcsbIGiBASBSKksOvIDYKa2Wy8htPmWFTEOPRpFXdGQ27awcjjnB42nngyCK5ukZDHi6 w0qK5DNQQCkiweevCIC6wc3p67jl1EMFY5+z+zdTPb3h7LeVnGqW0qBQl99vVFgzLxchKcl0 R/paSFgwqXCZhAKMuUHncJuynDOP7z5LirUeFI8qsBAJi1rXpQoLJTVcW72swZ42IdPiboqx NbTMiNOiE36GqMcTPfKylCbF45JNX4nF9ElM0E+Y8gi4cizJYBRr2FBJgay0b9Cp Message-ID: Date: Thu, 1 Nov 2018 09:17:13 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Nov 2018 08:11:16 -0000 On 31/10/2018 17:50, Rick Macklem wrote: > I alluded to this option in my last post. I think both fsids will need to be in the > mount structure, since finding the correct mount point via the fsid is the first > step in translating a file handle to a vnode. (After that VFS_FHTOVP() does the rest.) > > And I think it will get messy. A couple of examples. > There are some syscalls that use file handles. fhopen(2), fhstat(2), fhstatfs(2), > getfh(2), lgetfh(2) > I had assumed that the "file handles" used by these should be the same file > handles that NFS uses (ie. file handles are a generic VFS component and not NFS > specific) but I can see the argument either way. I actually don't know what > apps/utilities use fhopen/fhstat/fhstatfs, but getfh(2) is used by mountd. > Since mountd uses getfh(2) to get a file handle for NFS mounts, it needs to > return the NFS fsid to keep the old binaries working, even if you add a > new getnfsfh(2) function for mountd to use. > - Now you have some file handle system calls using file handles with the NFS > fsid in them and some using file handles with the "true" fsid in them. > (Sounds confusing to me.) > > Since the first step in turning a file handle into a vnode is looking up the fsid > in the mount list, if you had two fsids, I think they both would end up in the > mount structure so that lookup could be done easily. > This lookup is normally done by vfs_busyfs() { that appears to be the only use > of vfs_busyfs() in sys/kern. I haven't looked in the various file systems }. > With two fsids, you need two functions and need to be careful which one you use. I originally thought about having a separate filesystem list for NFS that would contain only exported filesystems. But I suspect that managing it could be problematic. An alternative idea is to use osd(9) framework to attach NFS specific data to struct mount without modifying the structure and without exposing the NFS data to other consumers. -- Andriy Gapon