android_kernel_samsung_msm8976/include
Joel Becker 631d1febab configfs: config item dependancies.
Sometimes other drivers depend on particular configfs items.  For
example, ocfs2 mounts depend on a heartbeat region item.  If that
region item is removed with rmdir(2), the ocfs2 mount must BUG or go
readonly.  Not happy.

This provides two additional API calls: configfs_depend_item() and
configfs_undepend_item().  A client driver can call
configfs_depend_item() on an existing item to tell configfs that it is
depended on.  configfs will then return -EBUSY from rmdir(2) for that
item.  When the item is no longer depended on, the client driver calls
configfs_undepend_item() on it.

These API cannot be called underneath any configfs callbacks, as
they will conflict.  They can block and allocate.  A client driver
probably shouldn't calling them of its own gumption.  Rather it should
be providing an API that external subsystems call.

How does this work?  Imagine the ocfs2 mount process.  When it mounts,
it asks for a heart region item.  This is done via a call into the
heartbeat code.  Inside the heartbeat code, the region item is looked
up.  Here, the heartbeat code calls configfs_depend_item().  If it
succeeds, then heartbeat knows the region is safe to give to ocfs2.
If it fails, it was being torn down anyway, and heartbeat can gracefully
pass up an error.

[ Fixed some bad whitespace in configfs.txt. --Mark ]

Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2007-07-10 17:18:59 -07:00
..
acpi
asm-alpha
asm-arm Introduce fixed sys_sync_file_range2() syscall, implement on PowerPC and ARM 2007-06-28 11:38:30 -07:00
asm-arm26
asm-avr32
asm-blackfin Blackfin arch: remove zero-sized include/asm-blackfin/macros.h 2007-07-03 08:25:50 +08:00
asm-cris
asm-frv frv: fix fallout from "remove sched.h from mm.h" patch 2007-07-01 12:29:44 -07:00
asm-generic sched: simplify sched_find_first_bit() 2007-07-09 18:52:00 +02:00
asm-h8300
asm-i386 i386: es7000 build breakage fix 2007-07-06 10:23:43 -07:00
asm-ia64 [IA64] change sh_change_coherence oemcall to use nolock 2007-06-26 13:33:58 -07:00
asm-m32r
asm-m68k
asm-m68knommu
asm-mips [MIPS] WRPPMC: Fix build. 2007-07-10 17:33:06 +01:00
asm-parisc [PARISC] Fix unwinder on 64-bit kernels 2007-06-21 17:46:21 -04:00
asm-powerpc [POWERPC] Uninline and export virq_to_hw() for the pasemi_mac driver 2007-07-02 13:29:21 +10:00
asm-ppc
asm-s390 [S390] s390: rename CPU_IDLE to S390_CPU_IDLE 2007-07-10 11:24:53 +02:00
asm-sh
asm-sh64
asm-sparc
asm-sparc64 [SPARC64]: Add linux/pagemap.h to asm/tlb.h 2007-06-28 21:25:31 -07:00
asm-um uml: add asm/paravirt.h 2007-06-24 08:59:11 -07:00
asm-v850
asm-x86_64 x86_64: Fix eventd/timerfd syscalls 2007-06-20 14:27:25 -07:00
asm-xtensa
crypto
keys
linux configfs: config item dependancies. 2007-07-10 17:18:59 -07:00
math-emu
media
mtd
net AX88796 network driver 2007-07-10 12:41:08 -04:00
pcmcia PCMCIA-NETDEV : add new ID of lan&modem multifunction card 2007-07-08 22:16:39 -04:00
rdma
rxrpc
scsi
sound
video
Kbuild