From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Howells Subject: Re: [PATCH] in-core AFS multiplexor and PAG support Date: Tue, 13 May 2003 17:57:47 +0100 Sender: openafs-devel-admin@openafs.org Message-ID: <9068.1052845067@warthog.warthog> References: <20030513163929.GB30944@gtf.org> Mime-Version: 1.0 (generated by SEMI 1.14.4 - "Hosorogi") Content-Type: text/plain; charset=US-ASCII Cc: Christoph Hellwig , David Howells , torvalds@transmeta.com, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, openafs-devel@openafs.org Return-path: To: Jeff Garzik In-Reply-To: <20030513163929.GB30944@gtf.org> Errors-To: openafs-devel-admin@openafs.org List-Help: List-Post: List-Subscribe: , List-Unsubscribe: , List-Archive: List-Id: linux-fsdevel.vger.kernel.org > AFS is annoying and painful no matter how you look at it. :/ > > But I don't think 90+ new syscalls is the answer, even for 2.7. I think it's going to be either (1) try to maintain compatibility with OpenAFS and Arla's current syscall setup (2) totally rewrite the interface and tell OpenAFS/Arla they have to change too. In the case of (2), I think the AFS operations would best be emulated by a combination of the following means: (1) Use the setpag() syscall in my patch. (2) Add syscalls for managing tokens on a general filesystem-by-filesystem basis (only need four ops: set, get, delete and clear-all). These could work through operations in struct file_system_type. (3) Work through sysfs files for fs-specific control functions. Things like adding cells would come into this category. (4) Emulate as much as many of the inode-requiring pioctl calls as possible with xattr syscalls. However, this leaves at least one that doesn't fit into any of the above categories. VIOC_STAT_MT_PT takes an inode, and so should come into (4) except that the xattr key size isn't sufficiently capacious. There are two ways to deal with this: (1) Add an actual pioctl syscall as a top-level syscall and make it either call a pioctl method in inode_operations or maybe have it fake a dentry and file and call file_operations->ioctl. (2) Open the directory holding the mountpoint and make an ioctl that aims at the mountpoint in question. David