Lukas Czerner
27dd438542
ext4: introduce reserved space
...
Currently in ENOSPC condition when writing into unwritten space, or
punching a hole, we might need to split the extent and grow extent tree.
However since we can not allocate any new metadata blocks we'll have to
zero out unwritten part of extent or punched out part of extent, or in
the worst case return ENOSPC even though use actually does not allocate
any space.
Also in delalloc path we do reserve metadata and data blocks for the
time we're going to write out, however metadata block reservation is
very tricky especially since we expect that logical connectivity implies
physical connectivity, however that might not be the case and hence we
might end up allocating more metadata blocks than previously reserved.
So in future, metadata reservation checks should be removed since we can
not assure that we do not under reserve.
And this is where reserved space comes into the picture. When mounting
the file system we slice off a little bit of the file system space (2%
or 4096 clusters, whichever is smaller) which can be then used for the
cases mentioned above to prevent costly zeroout, or unexpected ENOSPC.
The number of reserved clusters can be set via sysfs, however it can
never be bigger than number of free clusters in the file system.
Note that this patch fixes the failure of xfstest 274 as expected.
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
2013-04-09 22:11:22 -04:00
..
caching
FS-Cache: Provide proper invalidation
2012-12-20 22:04:07 +00:00
configfs
configfs: convert to umode_t
2012-01-03 22:54:57 -05:00
nfs
nfsd4: delay filling in write iovec array till after xdr decoding
2012-11-26 09:08:15 -05:00
pohmelfs
Documentation: Fix multiple typo in Documentation
2012-03-07 16:08:24 +01:00
00-INDEX
Introduce a new file system, Flash-Friendly File System (F2FS), to Linux 3.8.
2012-12-20 13:54:52 -08:00
9p.txt
9p: fix 9p.txt to advertise msize instead of maxdata
2011-10-24 11:13:12 -05:00
adfs.txt
adfs: add hexadecimal filetype suffix option
2011-03-22 17:44:17 -07:00
affs.txt
Documentation: update broken web addresses.
2010-08-04 15:21:40 +02:00
afs.txt
AFS: Documentation updates
2009-08-19 10:40:13 -07:00
autofs4-mount-control.txt
Fix common misspellings
2011-03-31 11:26:23 -03:00
automount-support.txt
befs.txt
Documentation: befs.txt: no maintainer, orphaned
2011-08-13 18:34:03 -07:00
bfs.txt
btrfs.txt
Fix URL of btrfs-progs git repository in docs
2011-11-30 18:46:02 +01:00
ceph.txt
ceph: enable/disable dentry complete flags via mount option
2012-01-12 11:00:40 -08:00
cifs.txt
coda.txt
cramfs.txt
debugfs.txt
debugfs: more tightly restrict default mount mode
2012-08-27 13:42:02 -07:00
devpts.txt
Document usage of multiple-instances of devpts
2009-01-02 10:19:36 -08:00
directory-locking
dlmfs.txt
Documentation/: it's -> its where appropriate
2010-04-23 02:09:52 +02:00
dnotify.txt
Documentation/fs/: split txt and source files
2010-03-12 15:52:35 -08:00
dnotify_test.c
Documentation/fs/: split txt and source files
2010-03-12 15:52:35 -08:00
ecryptfs.txt
efivarfs.txt
efivarfs: Add documentation for the EFI variable filesystem
2012-10-30 10:39:18 +00:00
exofs.txt
exofs: Add option to mount by osdname
2011-03-15 15:02:51 +02:00
ext2.txt
Doc fix: ext2 can only have 32,000 subdirs, not 32,768
2009-06-18 13:03:44 -07:00
ext3.txt
ext3: update documentation with barrier=1 default
2012-04-11 11:12:45 +02:00
ext4.txt
ext4: introduce reserved space
2013-04-09 22:11:22 -04:00
f2fs.txt
f2fs: update f2fs document to reflect SIT/NAT layout correctly
2013-01-04 09:42:59 +09:00
fiemap.txt
Documentation/: it's -> its where appropriate
2010-04-23 02:09:52 +02:00
files.txt
Wrap accesses to the fd_sets in struct fdtable
2012-02-19 10:30:52 -08:00
fuse.txt
Documentation/: it's -> its where appropriate
2010-04-23 02:09:52 +02:00
gfs2-glocks.txt
GFS2: Update glock doc to add new stats info
2012-05-10 12:41:40 +01:00
gfs2-uevents.txt
Documentation: Fix multiple typo in Documentation
2012-03-07 16:08:24 +01:00
gfs2.txt
GFS2: Update main gfs2 doc
2012-05-10 11:45:31 +01:00
hfs.txt
Documentation: HFS is orphaned
2011-11-04 12:01:48 -07:00
hfsplus.txt
hpfs.txt
Documentation/: it's -> its where appropriate
2010-04-23 02:09:52 +02:00
inotify.txt
Documentation: fix inotify source file paths
2011-11-04 12:01:47 -07:00
isofs.txt
Documentation: update broken web addresses.
2010-08-04 15:21:40 +02:00
jfs.txt
jfs: Remove obsolete email address
2012-09-17 12:00:01 -05:00
Locking
vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op
2013-02-26 02:46:09 -05:00
locks.txt
doc: fix broken references
2011-09-27 18:08:04 +02:00
logfs.txt
fix "seperate" typos in comments
2010-05-10 11:56:30 +02:00
Makefile
Documentation/fs/: split txt and source files
2010-03-12 15:52:35 -08:00
mandatory-locking.txt
ncpfs.txt
ncpfs: remove dead URL from documentation
2009-09-23 07:39:42 -07:00
nilfs2.txt
nilfs2: remove resize from unsupported features list
2011-07-13 16:08:59 +09:00
ntfs.txt
Fix common misspellings
2011-03-31 11:26:23 -03:00
ocfs2.txt
ocfs2: clean up mount option about atime in ocfs2.txt
2011-05-23 23:37:12 -07:00
omfs.txt
path-lookup.txt
Fix common misspellings
2011-03-31 11:26:23 -03:00
porting
vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op
2013-02-26 02:46:09 -05:00
proc.txt
docs: update documentation about /proc/<pid>/fdinfo/<fd> fanotify output
2012-12-17 17:15:28 -08:00
qnx6.txt
Documentation: Fix typo in multiple files in Documentation
2012-04-16 14:37:13 +02:00
quota.txt
ramfs-rootfs-initramfs.txt
Documentation: Fix Broken URL "freshmeat"
2012-02-21 11:43:45 +01:00
relay.txt
romfs.txt
Documentation/filesystems/romfs.txt: fixing link to genromfs
2011-02-17 22:04:46 +01:00
seq_file.txt
seq_file: use proc_create() in documentation
2009-12-16 07:20:07 -08:00
sharedsubtree.txt
Documentation: Fix trivial typo in filesystems/sharedsubtree.txt
2010-10-25 21:18:21 -04:00
spufs.txt
squashfs.txt
Squashfs: Update documentation to include xattrs
2011-12-30 01:20:24 +00:00
sysfs-pci.txt
PCI: Allow read/write access to sysfs I/O port resources
2010-07-30 09:32:08 -07:00
sysfs-tagging.txt
sysfs-namespaces: add a high-level Documentation file
2010-05-21 09:37:31 -07:00
sysfs.txt
sysfs: propagate umode_t
2012-01-03 22:55:03 -05:00
sysv-fs.txt
tmpfs.txt
mempolicy: document cpuset interaction with tmpfs mpol mount option
2010-05-25 08:06:57 -07:00
ubifs.txt
UBIFS: switch self-check knobs to debugfs
2011-07-04 10:54:28 +03:00
udf.txt
udf: implement mode and dmode mounting options
2009-04-02 12:29:50 +02:00
ufs.txt
vfat.txt
fat: provide option for setting timezone offset
2012-12-17 17:15:22 -08:00
vfs.txt
vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op
2013-02-26 02:46:09 -05:00
xfs-delayed-logging-design.txt
Fix common misspellings
2011-03-31 11:26:23 -03:00
xfs.txt
xfs: Remove the description of nodelaylog mount option from xfs.txt
2012-11-26 16:00:51 -06:00
xip.txt
DOC: update xip method info
2008-11-12 17:17:17 -08:00