Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b451cec4 authored by Al Viro's avatar Al Viro
Browse files

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
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -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
	 */
	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);
			UFSD("EXIT (FAILED)\n");
			return 0;
		}
	}

	if (goal >= uspi->s_size) 
		goal = 0;