kernel-ark/include/asm-powerpc
Amit Arora 97ac73506c sys_fallocate() implementation on i386, x86_64 and powerpc
fallocate() is a new system call being proposed here which will allow
applications to preallocate space to any file(s) in a file system.
Each file system implementation that wants to use this feature will need
to support an inode operation called ->fallocate().
Applications can use this feature to avoid fragmentation to certain
level and thus get faster access speed. With preallocation, applications
also get a guarantee of space for particular file(s) - even if later the
the system becomes full.

Currently, glibc provides an interface called posix_fallocate() which
can be used for similar cause. Though this has the advantage of working
on all file systems, but it is quite slow (since it writes zeroes to
each block that has to be preallocated). Without a doubt, file systems
can do this more efficiently within the kernel, by implementing
the proposed fallocate() system call. It is expected that
posix_fallocate() will be modified to call this new system call first
and incase the kernel/filesystem does not implement it, it should fall
back to the current implementation of writing zeroes to the new blocks.
ToDos:
1. Implementation on other architectures (other than i386, x86_64,
   and ppc). Patches for s390(x) and ia64 are already available from
   previous posts, but it was decided that they should be added later
   once fallocate is in the mainline. Hence not including those patches
   in this take.
2. Changes to glibc,
   a) to support fallocate() system call
   b) to make posix_fallocate() and posix_fallocate64() call fallocate()

Signed-off-by: Amit Arora <aarora@in.ibm.com>
2007-07-17 21:42:44 -04:00
..
iseries
8253pit.h
a.out.h
abs_addr.h
agp.h
asm-compat.h [POWERPC] Use mtocrf instruction in asm when CONFIG_POWER4_ONLY=y 2007-04-13 03:55:13 +10:00
atomic.h atomic.h: atomic_add_unless as inline. Remove system.h atomic.h circular dependency 2007-05-08 11:15:20 -07:00
auxvec.h
backlight.h
bitops.h atomic.h: add atomic64 cmpxchg, xchg and add_unless to powerpc 2007-05-08 11:15:19 -07:00
bootx.h
btext.h
bug.h
bugs.h
byteorder.h
cache.h [POWERPC] Add __read_mostly support for powerpc 2007-07-10 22:00:56 +10:00
cacheflush.h [POWERPC] DEBUG_PAGEALLOC for 32-bit 2007-04-13 04:09:39 +10:00
cell-pmu.h [POWERPC] cell: add cbe_node_to_cpu function 2007-04-23 21:44:38 +02:00
checksum.h
compat.h Introduce compat_u64 and compat_s64 types 2007-07-16 09:05:48 -07:00
cputable.h [POWERPC] Consolidate PowerPC 750 cputable features 2007-07-10 21:55:50 +10:00
cputime.h
current.h
dbdma.h
dcr-mmio.h
dcr-native.h
dcr.h
delay.h
device.h
div64.h
dma-mapping.h PCI: remove pci_dac_dma_... APIs 2007-07-11 16:02:11 -07:00
dma.h
edac.h
eeh_event.h [POWERPC] EEH: rm un-needed data 2007-03-22 22:52:55 +11:00
eeh.h
elf.h
emergency-restart.h
errno.h
fb.h fbdev: detect primary display device 2007-07-17 10:23:11 -07:00
fcntl.h
firmware.h
floppy.h [POWERPC] Rewrite IO allocation & mapping on powerpc64 2007-06-14 22:29:56 +10:00
fs_pd.h
futex.h
grackle.h
hardirq.h
heathrow.h
hvcall.h [POWERPC] Add H_ILLAN_ATTRIBUTES hcall number 2007-07-11 13:24:40 +10:00
hvconsole.h
hvcserver.h
hw_irq.h powerpc: fixup hard_irq_disable semantics 2007-05-11 08:29:34 -07:00
i8259.h
ibmebus.h [POWERPC] ibmebus: dynamic addition/removal of adapters, some code cleanup 2007-03-16 16:38:19 +11:00
ide.h
immap_86xx.h [POWERPC] 86xx/85xx: Unify Freescale PCI Express memory map registers structure 2007-03-26 17:03:49 -05:00
immap_qe.h [POWERPC] qe: ucc_slow.guemr is in the wrong place 2007-03-29 14:33:56 -05:00
io-defs.h
io.h [POWERPC] Abolish iopa(), mm_ptov(), io_block_mapping() from arch/powerpc 2007-06-14 22:30:15 +10:00
ioctl.h
ioctls.h
iommu.h [POWERPC] DART iommu suspend 2007-05-07 20:31:14 +10:00
ipc.h
ipcbuf.h
ipic.h
irq_regs.h
irq.h [POWERPC] Uninline and export virq_to_hw() for the pasemi_mac driver 2007-07-02 13:29:21 +10:00
irqflags.h
Kbuild
kdebug.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-05-08 11:50:19 -07:00
kdump.h
kexec.h kdump/kexec: calculate note size at compile time 2007-05-08 11:15:07 -07:00
keylargo.h
kmap_types.h
kprobes.h kallsyms: make KSYM_NAME_LEN include space for trailing '\0' 2007-07-17 10:23:03 -07:00
libata-portmap.h
linkage.h
lmb.h
local.h local_t: powerpc extension 2007-05-08 11:15:20 -07:00
lppaca.h [POWERPC] Donate idle CPU cycles on dedicated partitions 2007-06-14 22:29:58 +10:00
lv1call.h [POWERPC] PS3: System-bus rework 2007-06-28 19:16:38 +10:00
machdep.h [POWERPC] Pass the pci_controller into pci_exclude_device 2007-06-29 01:57:22 -05:00
macio.h
mc146818rtc.h
mediabay.h
mman.h
mmu_context.h [POWERPC] Merge asm-ppc/mmu_context.h into asm-power/mmu_context.h 2007-07-03 03:22:05 -05:00
mmu-8xx.h [POWERPC] Split out asm-ppc/mmu.h portions for PowerPC 8xx 2007-07-03 03:00:28 -05:00
mmu-44x.h [POWERPC] Remove fixup_bigphys_addr() for arch/powerpc to avoid link error 2007-05-17 21:11:13 +10:00
mmu-fsl-booke.h [POWERPC] Split out asm-ppc/mmu.h portions for Freescale Book-E 2007-07-03 03:00:16 -05:00
mmu-hash32.h [POWERPC] Kill typedef-ed structs for hash PTEs and BATs 2007-06-14 22:30:16 +10:00
mmu-hash64.h [POWERPC] Fix Kexec/Kdump for power6 2007-06-25 17:03:33 +10:00
mmu.h [POWERPC] Split out asm-ppc/mmu.h portions for PowerPC 8xx 2007-07-03 03:00:28 -05:00
mmzone.h [POWERPC] We don't define CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID 2007-05-10 21:28:13 +10:00
module.h
mpc8xx.h [POWERPC] 8xx: mpc885ads pcmcia support 2007-07-10 00:33:51 -05:00
mpc52xx.h [POWERPC] mpc52xx suspend to deep-sleep 2007-05-07 20:31:15 +10:00
mpc85xx.h
mpc86xx.h [POWERPC] kill isa_{io,mem}_base definitions for !PCI 2007-06-29 01:56:43 -05:00
mpc8260.h [POWERPC] Change include protections to ASM_POWERPC 2007-05-17 21:10:15 +10:00
mpic.h [POWERPC] MPIC MSI allocator 2007-05-08 13:43:48 +10:00
msgbuf.h
mutex.h
namei.h
nvram.h
of_device.h [POWERPC] Export of_device_get_modalias 2007-05-07 20:31:15 +10:00
of_platform.h
ohare.h
oprofile_impl.h [POWERPC] pasemi: PA6T oprofile support 2007-04-24 21:31:51 +10:00
paca.h [POWERPC] Introduce address space "slices" 2007-05-09 16:35:00 +10:00
page_32.h [POWERPC] Kill off the PTE_FMT macro 2007-05-07 20:31:14 +10:00
page_64.h [POWERPC] Introduce address space "slices" 2007-05-09 16:35:00 +10:00
page.h [POWERPC] Remove use of 4level-fixup.h for ppc32 2007-05-08 13:40:31 +10:00
param.h
parport.h parport->dev driver model support 2007-05-08 11:15:05 -07:00
pci-bridge.h [POWERPC] Use ppc64 style list management for pci_controller on ppc32 2007-06-29 01:58:45 -05:00
pci.h Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-07-16 17:58:08 -07:00
percpu.h
pgalloc-32.h [POWERPC] Remove use of 4level-fixup.h for ppc32 2007-05-08 13:40:31 +10:00
pgalloc-64.h [POWERPC] Fix return from pte_alloc_one() in out-of-memory case 2007-06-02 21:01:56 +10:00
pgalloc.h [POWERPC] Remove arch/powerpc's dependence on asm-ppc/pg{alloc,table}.h 2007-05-02 20:04:30 +10:00
pgtable-4k.h [POWERPC] Add ability to 4K kernel to hash in 64K pages 2007-05-09 16:35:00 +10:00
pgtable-64k.h [POWERPC] Add ability to 4K kernel to hash in 64K pages 2007-05-09 16:35:00 +10:00
pgtable-ppc32.h mm: remove ptep_test_and_clear_dirty and ptep_clear_flush_dirty 2007-07-17 10:22:59 -07:00
pgtable-ppc64.h mm: remove ptep_test_and_clear_dirty and ptep_clear_flush_dirty 2007-07-17 10:22:59 -07:00
pgtable.h [POWERPC] Start factoring pgtable-ppc32.h and pgtable-ppc64.h 2007-06-14 22:30:15 +10:00
pmac_feature.h [POWERPC] Change include protections to ASM_POWERPC 2007-05-17 21:10:15 +10:00
pmac_low_i2c.h
pmac_pfunc.h
pmc.h [POWERPC] pasemi: PA6T oprofile support 2007-04-24 21:31:51 +10:00
pmi.h
poll.h Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
posix_types.h
ppc_asm.h
ppc-pci.h [POWERPC] Rewrite IO allocation & mapping on powerpc64 2007-06-14 22:29:56 +10:00
processor.h [POWERPC] Abolish unused ucBoardRev variables 2007-06-28 19:19:29 +10:00
prom.h [POWERPC] Add a warning to help trackdown device_node refcounting bugs 2007-07-10 21:53:47 +10:00
ps3.h [POWERPC] PS3: Preallocate bootmem memory for the PS3 FLASH ROM storage driver 2007-06-28 19:18:08 +10:00
ps3av.h [POWERPC] PS3: Rework AV settings driver 2007-06-28 19:16:42 +10:00
ps3fb.h [POWERPC] PS3: Frame buffer system-bus rework 2007-06-28 19:16:42 +10:00
ps3stor.h [POWERPC] PS3: Storage Driver Core 2007-06-28 19:19:20 +10:00
pSeries_reconfig.h
ptrace.h [POWERPC] Uninline common ptrace bits 2007-06-14 22:29:57 +10:00
qe_ic.h
qe.h [POWERPC] Change rheap functions to use ulongs instead of pointers 2007-05-09 23:01:43 -05:00
reg_8xx.h
reg_booke.h [POWERPC] Move reg_booke.h to include/asm-powerpc 2007-05-09 23:00:37 -05:00
reg.h [POWERPC] Oprofile enhanced instruction sampling support 2007-07-10 21:55:48 +10:00
resource.h
rheap.h [POWERPC] User rheap from arch/powerpc/lib 2007-05-09 23:28:17 -05:00
rtas.h
rtc.h
rwsem.h
scatterlist.h
seccomp.h
sections.h
semaphore.h
sembuf.h
serial.h
setup.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
smp.h Remove hardcoding of hard_smp_processor_id on UP systems 2007-05-09 12:30:48 -07:00
smu.h
socket.h [NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support 2007-04-25 22:24:21 -07:00
sockios.h [NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution 2007-04-25 22:24:04 -07:00
sparsemem.h
spinlock_types.h
spinlock.h
spu_csa.h [POWERPC] Spufs support for 64K LS mappings on 4K kernels 2007-05-09 16:35:00 +10:00
spu_info.h
spu_priv1.h
spu.h [POWERPC] spufs: Add spu stats in sysfs 2007-07-03 15:24:46 +10:00
sstep.h
stat.h
statfs.h
string.h [STRING]: Move strcasecmp/strncasecmp to lib/string.c 2007-04-26 01:54:39 -07:00
suspend.h [POWERPC] Fix suspend states again 2007-05-02 20:04:30 +10:00
synch.h
syscalls.h [POWERPC] Consolidate sys_sigaltstack 2007-06-14 22:29:57 +10:00
systbl.h sys_fallocate() implementation on i386, x86_64 and powerpc 2007-07-17 21:42:44 -04:00
system.h [POWERPC] Make the debugfs "powerpc" dir globally accessible 2007-07-10 21:53:50 +10:00
tce.h
termbits.h [POWERPC] Enable arbitary speed tty ioctls and split input/output speed 2007-07-10 22:03:29 +10:00
termios.h
thread_info.h [POWERPC] Reserve threadinfo flags for perfmon2 2007-06-14 22:29:55 +10:00
time.h [POWERPC] Move iSeries_tb_recal into its own late_initcall. 2007-06-28 19:19:23 +10:00
timex.h
tlb.h [POWERPC] Fix possible access to free pages 2007-06-02 21:01:55 +10:00
tlbflush.h [POWERPC] Rewrite IO allocation & mapping on powerpc64 2007-06-14 22:29:56 +10:00
topology.h
tsi108_irq.h [POWERPC] Change include protections to ASM_POWERPC 2007-05-17 21:10:15 +10:00
tsi108_pci.h [POWERPC] Change include protections to ASM_POWERPC 2007-05-17 21:10:15 +10:00
tsi108.h [POWERPC] Generalize tsi108 PCI setup 2007-05-08 11:54:20 +10:00
types.h
uaccess.h [POWERPC] Add inatomic versions of __get_user and __put_user 2007-04-13 04:09:38 +10:00
ucc_fast.h ucc_geth: Implement Transmit on Demand support 2007-04-28 11:01:04 -04:00
ucc_slow.h
ucc.h
ucontext.h
udbg.h [POWERPC] Early serial debug support for PPC44x 2007-05-08 14:47:33 +10:00
uic.h [POWERPC] Add arch/powerpc driver for UIC, PPC4xx interrupt controller 2007-04-24 21:32:01 +10:00
unaligned.h
uninorth.h
unistd.h sys_fallocate() implementation on i386, x86_64 and powerpc 2007-07-17 21:42:44 -04:00
user.h
vdso_datapage.h
vdso.h
vga.h
vio.h
xmon.h
xor.h