Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934388Ab2J3Uvt (ORCPT ); Tue, 30 Oct 2012 16:51:49 -0400 Received: from zeniv.linux.org.uk ([195.92.253.2]:55048 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755306Ab2J3Uvq (ORCPT ); Tue, 30 Oct 2012 16:51:46 -0400 Date: Tue, 30 Oct 2012 20:51:42 +0000 From: Al Viro To: Jeff Moyer Cc: linux-kernel@vger.kernel.org, David Howells , Chris Mason , Steve French , Mark Fasheh , Joel Becker , Matthew Wilcox , linux-afs@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, ocfs2-devel@oss.oracle.com Subject: Re: [patch 05/10] vfs: pass data to alloc_inode super operation Message-ID: <20121030205142.GB2616@ZenIV.linux.org.uk> References: <1351628084-29358-1-git-send-email-jmoyer@redhat.com> <1351628084-29358-8-git-send-email-jmoyer@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1351628084-29358-8-git-send-email-jmoyer@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1432 Lines: 38 On Tue, Oct 30, 2012 at 04:14:39PM -0400, Jeff Moyer wrote: > This patch passes a data pointer along to the alloc_inode > super_operations function. The value will initially be used by > bdev_alloc_inode to allocate the bdev_inode on the same numa > node as the device to which it is tied. Yecchhh... > -static struct inode *bdev_alloc_inode(struct super_block *sb) > +static struct inode *bdev_alloc_inode(struct super_block *sb, void *data) > { > - struct bdev_inode *ei = kmem_cache_alloc(bdev_cachep, GFP_KERNEL); > + struct bdev_inode *ei; > + int partno; > + int node; > + > + if (data) { > + struct gendisk *disk; > + dev_t dev = *(dev_t *)data; > + disk = get_gendisk(dev, &partno); > + node = disk->node_id; > + put_disk(disk); Oh, _lovely_. Such a stunningly elegant idea. And why not pass the sodding node_id directly, if I may ask? [reads further] [finds completely undocumented reason for that] Take that crap out and don't bring it back. And consider this kludge NAKed once and forever. It's unspeakably ugly, even if it didn't break just about every fs out there (you do realize that almost all of them have ->alloc_inode(), don't you? Use grep and see). -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/