diff options
| author | 2012-07-26 11:25:33 -0700 | |
|---|---|---|
| committer | 2012-07-26 11:25:33 -0700 | |
| commit | fa93669a1917f93b09142d4b2298329b82d7d36d (patch) | |
| tree | 7f8d6dc9d1fbb086c59a799a3a7137c46fb9959e /fs/sysfs/dir.c | |
| parent | Merge tag 'staging-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging (diff) | |
| parent | printk: Export struct log size and member offsets through vmcoreinfo (diff) | |
| download | linux-dev-fa93669a1917f93b09142d4b2298329b82d7d36d.tar.xz linux-dev-fa93669a1917f93b09142d4b2298329b82d7d36d.zip  | |
Merge tag 'driver-core-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core changes from Greg Kroah-Hartman:
 "Here's the big driver core pull request for 3.6-rc1.
  Unlike 3.5, this kernel should be a lot tamer, with the printk changes
  now settled down.  All we have here is some extcon driver updates, w1
  driver updates, a few printk cleanups that weren't needed for 3.5, but
  are good to have now, and some other minor fixes/changes in the driver
  core.
  All of these have been in the linux-next releases for a while now.
  Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
* tag 'driver-core-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (38 commits)
  printk: Export struct log size and member offsets through vmcoreinfo
  Drivers: hv: Change the hex constant to a decimal constant
  driver core: don't trigger uevent after failure
  extcon: MAX77693: Add extcon-max77693 driver to support Maxim MAX77693 MUIC device
  sysfs: fail dentry revalidation after namespace change fix
  sysfs: fail dentry revalidation after namespace change
  extcon: spelling of detach in function doc
  extcon: arizona: Stop microphone detection if we give up on it
  extcon: arizona: Update cable reporting calls and split headset
  PM / Runtime: Do not increment device usage counts before probing
  kmsg - do not flush partial lines when the console is busy
  kmsg - export "continuation record" flag to /dev/kmsg
  kmsg - avoid warning for CONFIG_PRINTK=n compilations
  kmsg - properly print over-long continuation lines
  driver-core: Use kobj_to_dev instead of re-implementing it
  driver-core: Move kobj_to_dev from genhd.h to device.h
  driver core: Move deferred devices to the end of dpm_list before probing
  driver core: move uevent call to driver_register
  driver core: fix shutdown races with probe/remove(v3)
  Extcon: Arizona: Add driver for Wolfson Arizona class devices
  ...
Diffstat (limited to 'fs/sysfs/dir.c')
| -rw-r--r-- | fs/sysfs/dir.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c index a5cf784f9cc2..6b0bb00d4d2b 100644 --- a/fs/sysfs/dir.c +++ b/fs/sysfs/dir.c @@ -307,6 +307,7 @@ static int sysfs_dentry_revalidate(struct dentry *dentry, unsigned int flags)  {  	struct sysfs_dirent *sd;  	int is_dir; +	int type;  	if (flags & LOOKUP_RCU)  		return -ECHILD; @@ -326,6 +327,15 @@ static int sysfs_dentry_revalidate(struct dentry *dentry, unsigned int flags)  	if (strcmp(dentry->d_name.name, sd->s_name) != 0)  		goto out_bad; +	/* The sysfs dirent has been moved to a different namespace */ +	type = KOBJ_NS_TYPE_NONE; +	if (sd->s_parent) { +		type = sysfs_ns_type(sd->s_parent); +		if (type != KOBJ_NS_TYPE_NONE && +				sysfs_info(dentry->d_sb)->ns[type] != sd->s_ns) +			goto out_bad; +	} +  	mutex_unlock(&sysfs_mutex);  out_valid:  	return 1;  | 
