diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-16 15:57:37 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-16 15:57:37 -0400 |
| commit | 6fd03301d76bc439382710e449f58efbb233df1b (patch) | |
| tree | 3c8a3217aed67319683ffc1debccdb5b3245b16c /fs/debugfs/inode.c | |
| parent | cd5232bd6be2d215a800f3d88c287ca791debfbe (diff) | |
| parent | e4792aa30f9d33584d7192685ed149cc5fee737f (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (64 commits)
debugfs: use specified mode to possibly mark files read/write only
debugfs: Fix terminology inconsistency of dir name to mount debugfs filesystem.
xen: remove driver_data direct access of struct device from more drivers
usb: gadget: at91_udc: remove driver_data direct access of struct device
uml: remove driver_data direct access of struct device
block/ps3: remove driver_data direct access of struct device
s390: remove driver_data direct access of struct device
parport: remove driver_data direct access of struct device
parisc: remove driver_data direct access of struct device
of_serial: remove driver_data direct access of struct device
mips: remove driver_data direct access of struct device
ipmi: remove driver_data direct access of struct device
infiniband: ehca: remove driver_data direct access of struct device
ibmvscsi: gadget: at91_udc: remove driver_data direct access of struct device
hvcs: remove driver_data direct access of struct device
xen block: remove driver_data direct access of struct device
thermal: remove driver_data direct access of struct device
scsi: remove driver_data direct access of struct device
pcmcia: remove driver_data direct access of struct device
PCIE: remove driver_data direct access of struct device
...
Manually fix up trivial conflicts due to different direct driver_data
direct access fixups in drivers/block/{ps3disk.c,ps3vram.c}
Diffstat (limited to 'fs/debugfs/inode.c')
| -rw-r--r-- | fs/debugfs/inode.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c index 0662ba6de85a..d22438ef7674 100644 --- a/fs/debugfs/inode.c +++ b/fs/debugfs/inode.c | |||
| @@ -403,6 +403,7 @@ void debugfs_remove_recursive(struct dentry *dentry) | |||
| 403 | } | 403 | } |
| 404 | child = list_entry(parent->d_subdirs.next, struct dentry, | 404 | child = list_entry(parent->d_subdirs.next, struct dentry, |
| 405 | d_u.d_child); | 405 | d_u.d_child); |
| 406 | next_sibling: | ||
| 406 | 407 | ||
| 407 | /* | 408 | /* |
| 408 | * If "child" isn't empty, walk down the tree and | 409 | * If "child" isn't empty, walk down the tree and |
| @@ -417,6 +418,16 @@ void debugfs_remove_recursive(struct dentry *dentry) | |||
| 417 | __debugfs_remove(child, parent); | 418 | __debugfs_remove(child, parent); |
| 418 | if (parent->d_subdirs.next == &child->d_u.d_child) { | 419 | if (parent->d_subdirs.next == &child->d_u.d_child) { |
| 419 | /* | 420 | /* |
| 421 | * Try the next sibling. | ||
| 422 | */ | ||
| 423 | if (child->d_u.d_child.next != &parent->d_subdirs) { | ||
| 424 | child = list_entry(child->d_u.d_child.next, | ||
| 425 | struct dentry, | ||
| 426 | d_u.d_child); | ||
| 427 | goto next_sibling; | ||
| 428 | } | ||
| 429 | |||
| 430 | /* | ||
| 420 | * Avoid infinite loop if we fail to remove | 431 | * Avoid infinite loop if we fail to remove |
| 421 | * one dentry. | 432 | * one dentry. |
| 422 | */ | 433 | */ |
