Commit 818db35992c249dc32c1d86daf7d533fb0952f5d
Committed by
Linus Torvalds
1 parent
5b04c6890f
tmpfs: fix mounts when size is less than the page size
When tmpfs is mounted with a size less than one page, the number of blocks is set to 0 which makes the tmpfs mount unlimited. This can lead to a quick and surprising death if someone typos a tmpfs mount command and writes too much. tmpfs can still be mounted as unlimited if size or nr_blocks is exactly 0, as Documentation/filesystems/tmpfs.txt says. Hugh: do this by rounding size up instead of down in all cases: which slightly expands other odd-sized tmpfs mounts, but in a consistent way. Signed-off-by: Michael Marineau <mike@marineau.org> Signed-off-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 1 additions and 1 deletions Side-by-side Diff
mm/shmem.c
... | ... | @@ -2012,7 +2012,7 @@ |
2012 | 2012 | } |
2013 | 2013 | if (*rest) |
2014 | 2014 | goto bad_val; |
2015 | - *blocks = size >> PAGE_CACHE_SHIFT; | |
2015 | + *blocks = DIV_ROUND_UP(size, PAGE_CACHE_SIZE); | |
2016 | 2016 | } else if (!strcmp(this_char,"nr_blocks")) { |
2017 | 2017 | *blocks = memparse(value,&rest); |
2018 | 2018 | if (*rest) |