mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
![Mark Fasheh](/assets/img/avatar_default.png)
This patch improves Ocfs2 allocation policy by allowing an inode to reserve a portion of the local alloc bitmap for itself. The reserved portion (allocation window) is advisory in that other allocation windows might steal it if the local alloc bitmap becomes full. Otherwise, the reservations are honored and guaranteed to be free. When the local alloc window is moved to a different portion of the bitmap, existing reservations are discarded. Reservation windows are represented internally by a red-black tree. Within that tree, each node represents the reservation window of one inode. An LRU of active reservations is also maintained. When new data is written, we allocate it from the inodes window. When all bits in a window are exhausted, we allocate a new one as close to the previous one as possible. Should we not find free space, an existing reservation is pulled off the LRU and cannibalized. Signed-off-by: Mark Fasheh <mfasheh@suse.com>
53 lines
1,011 B
Makefile
53 lines
1,011 B
Makefile
EXTRA_CFLAGS += -Ifs/ocfs2
|
|
|
|
EXTRA_CFLAGS += -DCATCH_BH_JBD_RACES
|
|
|
|
obj-$(CONFIG_OCFS2_FS) += \
|
|
ocfs2.o \
|
|
ocfs2_stackglue.o
|
|
|
|
obj-$(CONFIG_OCFS2_FS_O2CB) += ocfs2_stack_o2cb.o
|
|
obj-$(CONFIG_OCFS2_FS_USERSPACE_CLUSTER) += ocfs2_stack_user.o
|
|
|
|
ocfs2-objs := \
|
|
alloc.o \
|
|
aops.o \
|
|
blockcheck.o \
|
|
buffer_head_io.o \
|
|
dcache.o \
|
|
dir.o \
|
|
dlmglue.o \
|
|
export.o \
|
|
extent_map.o \
|
|
file.o \
|
|
heartbeat.o \
|
|
inode.o \
|
|
ioctl.o \
|
|
journal.o \
|
|
localalloc.o \
|
|
locks.o \
|
|
mmap.o \
|
|
namei.o \
|
|
refcounttree.o \
|
|
reservations.o \
|
|
resize.o \
|
|
slot_map.o \
|
|
suballoc.o \
|
|
super.o \
|
|
symlink.o \
|
|
sysfile.o \
|
|
uptodate.o \
|
|
ver.o \
|
|
quota_local.o \
|
|
quota_global.o \
|
|
xattr.o \
|
|
acl.o
|
|
|
|
ocfs2_stackglue-objs := stackglue.o
|
|
ocfs2_stack_o2cb-objs := stack_o2cb.o
|
|
ocfs2_stack_user-objs := stack_user.o
|
|
|
|
obj-$(CONFIG_OCFS2_FS) += dlmfs/
|
|
# cluster/ is always needed when OCFS2_FS for masklog support
|
|
obj-$(CONFIG_OCFS2_FS) += cluster/
|
|
obj-$(CONFIG_OCFS2_FS_O2CB) += dlm/
|