From patchwork Tue Mar 6 00:04:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyson Nottingham X-Patchwork-Id: 881828 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ext4-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="uzR6esiT"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zwH8c0tLqz9sZl for ; Tue, 6 Mar 2018 11:05:04 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932751AbeCFAFD (ORCPT ); Mon, 5 Mar 2018 19:05:03 -0500 Received: from mail-pl0-f65.google.com ([209.85.160.65]:39323 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932446AbeCFAFC (ORCPT ); Mon, 5 Mar 2018 19:05:02 -0500 Received: by mail-pl0-f65.google.com with SMTP id s13-v6so10763671plq.6 for ; Mon, 05 Mar 2018 16:05:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=Lha7Ou/mtrARIdMqVExxbVvPzkbGLDd7ePJwXYxDsgE=; b=uzR6esiTkBieD/WJf5H7xo0iuaEWp5qNk3BE7oJPwfFs584pQkIC+bIRAOF1bB/Gv/ ZGt+it6hYSG3EOnCV+RM6z7ZZNvGekMbRMgmNxP/hm9n19Axf0ZbM0UZ6SONRpDKjwwU 4jv1CVa30IwvVJJKrIb5ZolZp42bZMdax2DaE8cTe4nPOS7QJQT0bGjkwStpiqoWTp7+ c9/pu3RCFKAg+0NGImBe67vcqxHQOfUlAF4IHGC3ZZwVZg4QtOkqs9yECphLnRra58eg HdLBxvdqimjBZqfgkJg0YQPhF0BsS8ww+S/r6DO4ELMf/yj8jsIzbxEmypM/STlCvuyz MpEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=Lha7Ou/mtrARIdMqVExxbVvPzkbGLDd7ePJwXYxDsgE=; b=CJ2sDF7N6WQaUuAoN8l8+aWj5vgZHZVkNlw2u44f791s3hCRMSjYuhBGZv7SWmf3D0 CjpWiRfKiD3NMNFhGlIWzZXMZ6HDDdYLgrmvIb0QSOd+Ay1baG9hsWd5XEWGjsGlX640 mM1zSoQdPE/uZWPI2x6i5ozc017mE2MGE5VaQlvKI46s4aer02f6/6lKPa6od/Tm5wHi AIwb1WWZqS3Ignc85iitGGkKHVTzmNxyY8fYot/qLQFBQeQRBuZHHwincqy9IQV8ig+5 0K2yXgwmO7Bw5htyby+NEpZQ5sZjZqzbb98D8lrJuZYL26j8SVOtf7WeOhc/w0iSXsDc Q/qQ== X-Gm-Message-State: APf1xPCdo3o2+NaLolDmbtd9Yq5rmOLRabqxz4SISd8Z6iMRJR74pz+2 e0DAJhhuGtYPE/0HIiNEAGu41nUgJOE= X-Google-Smtp-Source: AG47ELsyVBW7b2wmIsrbwM063tcNebNAbsZkko1DTpUQlewPjCtJcB++6l3vWDaO7l/2/fclJ648ig== X-Received: by 2002:a17:902:d682:: with SMTP id v2-v6mr14682360ply.348.1520294701957; Mon, 05 Mar 2018 16:05:01 -0800 (PST) Received: from localhost.localdomain (c-73-11-197-250.hsd1.wa.comcast.net. [73.11.197.250]) by smtp.gmail.com with ESMTPSA id i126sm24682940pgc.40.2018.03.05.16.05.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 05 Mar 2018 16:05:00 -0800 (PST) From: Tyson Nottingham To: linux-ext4@vger.kernel.org Cc: tytso@mit.edu, adilger.kernel@dilger.ca, sirmy15@gmail.com, Tyson Nottingham Subject: [PATCH 3/3] ext4: simplify kobject usage Date: Mon, 5 Mar 2018 16:04:34 -0800 Message-Id: <55304d1f13f19ca4fc860eb7fe2ffbd8fc038e02.1520292208.git.tgnottingham@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: In-Reply-To: References: Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Replace kset with generic kobject provided by kobject_create_and_add(), since the latter is sufficient. Signed-off-by: Tyson Nottingham --- As far as I can tell, we're not using any kset-specific functionality here, so replace it with the simpler generic kobject. --- fs/ext4/sysfs.c | 45 ++++++++++++--------------------------------- 1 file changed, 12 insertions(+), 33 deletions(-) diff --git a/fs/ext4/sysfs.c b/fs/ext4/sysfs.c index 3b6b3ab..9ebd26c 100644 --- a/fs/ext4/sysfs.c +++ b/fs/ext4/sysfs.c @@ -325,13 +325,6 @@ static void ext4_sb_release(struct kobject *kobj) complete(&sbi->s_kobj_unregister); } -static void ext4_kset_release(struct kobject *kobj) -{ - struct kset *kset = container_of(kobj, struct kset, kobj); - - kfree(kset); -} - static const struct sysfs_ops ext4_attr_ops = { .show = ext4_attr_show, .store = ext4_attr_store, @@ -343,19 +336,14 @@ static struct kobj_type ext4_sb_ktype = { .release = ext4_sb_release, }; -static struct kobj_type ext4_ktype = { - .sysfs_ops = &ext4_attr_ops, - .release = ext4_kset_release, -}; - -static struct kset *ext4_kset; - static struct kobj_type ext4_feat_ktype = { .default_attrs = ext4_feat_attrs, .sysfs_ops = &ext4_attr_ops, .release = (void (*)(struct kobject *))kfree, }; +static struct kobject *ext4_root; + static struct kobject *ext4_feat; #define PROC_FILE_SHOW_DEFN(name) \ @@ -393,9 +381,8 @@ int ext4_register_sysfs(struct super_block *sb) const struct ext4_proc_files *p; int err; - sbi->s_kobj.kset = ext4_kset; init_completion(&sbi->s_kobj_unregister); - err = kobject_init_and_add(&sbi->s_kobj, &ext4_sb_ktype, NULL, + err = kobject_init_and_add(&sbi->s_kobj, &ext4_sb_ktype, ext4_root, "%s", sb->s_id); if (err) { kobject_put(&sbi->s_kobj); @@ -431,26 +418,18 @@ int __init ext4_init_sysfs(void) { int ret; - ext4_kset = kzalloc(sizeof(*ext4_kset), GFP_KERNEL); - if (!ext4_kset) + ext4_root = kobject_create_and_add("ext4", fs_kobj); + if (!ext4_root) return -ENOMEM; - kobject_set_name(&ext4_kset->kobj, "ext4"); - ext4_kset->kobj.parent = fs_kobj; - ext4_kset->kobj.ktype = &ext4_ktype; - ret = kset_register(ext4_kset); - if (ret) - goto kset_err; - ext4_feat = kzalloc(sizeof(*ext4_feat), GFP_KERNEL); if (!ext4_feat) { ret = -ENOMEM; - goto kset_err; + goto root_err; } - ext4_feat->kset = ext4_kset; ret = kobject_init_and_add(ext4_feat, &ext4_feat_ktype, - NULL, "features"); + ext4_root, "features"); if (ret) goto feat_err; @@ -460,9 +439,9 @@ int __init ext4_init_sysfs(void) feat_err: kobject_put(ext4_feat); ext4_feat = NULL; -kset_err: - kset_unregister(ext4_kset); - ext4_kset = NULL; +root_err: + kobject_put(ext4_root); + ext4_root = NULL; return ret; } @@ -470,8 +449,8 @@ void ext4_exit_sysfs(void) { kobject_put(ext4_feat); ext4_feat = NULL; - kset_unregister(ext4_kset); - ext4_kset = NULL; + kobject_put(ext4_root); + ext4_root = NULL; remove_proc_entry(proc_dirname, NULL); ext4_proc_root = NULL; }