Commit b451cec4 authored by Al Viro's avatar Al Viro

ufs: fix reserved blocks check

a) honour ->s_minfree; don't just go with default (5)
b) don't bother with capability checks until we know we'll need them
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent fffd70f5
...@@ -400,11 +400,13 @@ u64 ufs_new_fragments(struct inode *inode, void *p, u64 fragment, ...@@ -400,11 +400,13 @@ u64 ufs_new_fragments(struct inode *inode, void *p, u64 fragment,
/* /*
* There is not enough space for user on the device * There is not enough space for user on the device
*/ */
if (!capable(CAP_SYS_RESOURCE) && ufs_freespace(uspi, UFS_MINFREE) <= 0) { if (unlikely(ufs_freespace(uspi, uspi->s_minfree) <= 0)) {
if (!capable(CAP_SYS_RESOURCE)) {
mutex_unlock(&UFS_SB(sb)->s_lock); mutex_unlock(&UFS_SB(sb)->s_lock);
UFSD("EXIT (FAILED)\n"); UFSD("EXIT (FAILED)\n");
return 0; return 0;
} }
}
if (goal >= uspi->s_size) if (goal >= uspi->s_size)
goal = 0; goal = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment