diff options
author | Theodore Ts'o <tytso@mit.edu> | 2012-08-17 09:48:17 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2012-08-17 09:48:17 -0400 |
commit | df981d03eeff7971ac7e6ff37000bfa702327ef1 (patch) | |
tree | 4e944139b9e45c4af910c517b57f2d9bc7c81a1a /fs/ext4/ext4.h | |
parent | 01fc48e8929e45e67527200017cff4e74e4ba054 (diff) | |
download | lwn-df981d03eeff7971ac7e6ff37000bfa702327ef1.tar.gz lwn-df981d03eeff7971ac7e6ff37000bfa702327ef1.zip |
ext4: add max_dir_size_kb mount option
Very large directories can cause significant performance problems, or
perhaps even invoke the OOM killer, if the process is running in a
highly constrained memory environment (whether it is VM's with a small
amount of memory or in a small memory cgroup).
So it is useful, in cloud server/data center environments, to be able
to set a filesystem-wide cap on the maximum size of a directory, to
ensure that directories never get larger than a sane size. We do this
via a new mount option, max_dir_size_kb. If there is an attempt to
grow the directory larger than max_dir_size_kb, the system call will
return ENOSPC instead.
Google-Bug-Id: 6863013
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/ext4.h')
-rw-r--r-- | fs/ext4/ext4.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index c3411d4ce2da..7c0841ecde6c 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -1243,6 +1243,7 @@ struct ext4_sb_info { unsigned int s_mb_order2_reqs; unsigned int s_mb_group_prealloc; unsigned int s_max_writeback_mb_bump; + unsigned int s_max_dir_size_kb; /* where last allocation was done - for stream allocation */ unsigned long s_mb_last_group; unsigned long s_mb_last_start; |