From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1765765AbYDBUhS (ORCPT ); Wed, 2 Apr 2008 16:37:18 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1760868AbYDBUS2 (ORCPT ); Wed, 2 Apr 2008 16:18:28 -0400 Received: from ns.suse.de ([195.135.220.2]:37138 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1761969AbYDBUSY (ORCPT ); Wed, 2 Apr 2008 16:18:24 -0400 From: Mark Fasheh To: linux-kernel@vger.kernel.org Cc: ocfs2-devel@oss.oracle.com, Joel Becker Subject: [PATCH 50/62] sysfs: Allow removal of symlinks in the sysfs root Date: Wed, 2 Apr 2008 13:15:00 -0700 Message-Id: <12071674242631-git-send-email-mfasheh@suse.com> X-Mailer: git-send-email 1.5.2.4 In-Reply-To: <12071674213882-git-send-email-mfasheh@suse.com> References: <12071673121124-git-send-email-mfasheh@suse.com> <1207167318479-git-send-email-mfasheh@suse.com> <12071673203909-git-send-email-mfasheh@suse.com> <12071673232465-git-send-email-mfasheh@suse.com> <12071673263948-git-send-email-mfasheh@suse.com> <12071673282579-git-send-email-mfasheh@suse.com> <1207167330482-git-send-email-mfasheh@suse.com> <12071673321172-git-send-email-mfasheh@suse.com> <12071673341888-git-send-email-mfasheh@suse.com> <12071673362069-git-send-email-mfasheh@suse.com> <12071673391031-git-send-email-mfasheh@suse.com> <12071673413492-git-send-email-mfasheh@suse.com> <1207167343926-git-send-email-mfasheh@suse.com> <12071673461268-git-send-email-mfasheh@suse.com> <12071673481928-git-send-email-mfasheh@suse.com> <12071673492775-git-send-email-mfasheh@suse.com> <12071673511262-git-send-email-mfasheh@suse.com> <12071673543752-git-send-email-mfasheh@suse.com> <1207167355295-git-send-email-mfasheh@suse.com> <12071673571757-git-send-email-mfasheh@suse.com> <12071673591158-git-send-email-mfasheh@suse.com> <12071673613757-git-send-email-mfasheh@suse.com> <1207167363119-git-send-email-mfasheh@suse.com> <12071673661674-git-send-email-mfasheh@suse.com> <12071673681650-git-send-email-mfasheh@suse.com> <12071673701937-git-send-email-mfasheh@suse.com> <12071673722691-git-send-email-mfasheh@suse.com> <12071673731276-git-send-email-mfasheh@suse.com> <12071673753788-git-send-email-mfasheh@suse.com> <12071673772233-git-send-email-mfasheh@suse.com> <1207167379283-git-send-email-mfasheh@suse.com> <12071673821008-git-send-email-mfasheh@suse.com> <12071673843208-git-send-email-mfasheh@suse.com> <12071673872568-git-send-email-mfasheh@suse.com> <12071673882492-git-send-email-mfasheh@suse.com> <1207167390414-git-send-email-mfasheh@suse.com> <1207167392537-git-send-email-mfasheh@suse.com> <12071673941659-git-send-email-mfasheh@suse.com> <12071673964014-git-send-email-mfasheh@suse.com> <1207167398684-git-send-email-mfasheh@suse.com> <12071674013954-git-send-email-mfasheh@suse.com> <12071674033903-git-send-email-mfasheh@suse.com> <12071674061934-git-send-email-mfasheh@suse.com> <12071674083120-git-send-email-mfasheh@suse.com> <12071674103432-git-send-email-mfasheh@suse.com> <1207167413855-git-send-email-mfasheh@suse.com> <12071674151752-git-send-email-mfasheh@suse.com> <12071674171596-git-send-email-mfasheh@suse.com> <12071674193441-git-send-email-mfasheh@suse.com> <12071674213882-git-send-email-mfasheh@suse.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Allow callers of sysfs_remove_link() to pass a NULL kobj, in which case sysfs_root will be used as the parent directory. This allows us to tear down top level symlinks created via sysfs_create_link(), which already has similar handling of a NULL parent object. Signed-off-by: Mark Fasheh Acked-by: Greg Kroah-Hartman --- fs/sysfs/symlink.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/fs/sysfs/symlink.c b/fs/sysfs/symlink.c index 5f66c44..817f596 100644 --- a/fs/sysfs/symlink.c +++ b/fs/sysfs/symlink.c @@ -87,7 +87,14 @@ int sysfs_create_link(struct kobject * kobj, struct kobject * target, const char void sysfs_remove_link(struct kobject * kobj, const char * name) { - sysfs_hash_and_remove(kobj->sd, name); + struct sysfs_dirent *parent_sd = NULL; + + if (!kobj) + parent_sd = &sysfs_root; + else + parent_sd = kobj->sd; + + sysfs_hash_and_remove(parent_sd, name); } static int sysfs_get_target_path(struct sysfs_dirent *parent_sd, -- 1.5.4.1