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

Commit f2bb8f5c authored by Josef Bacik's avatar Josef Bacik
Browse files

Btrfs: don't commit the transaction if we dont have enough pinned bytes



I noticed when running an enospc test that we would get stuck committing the
transaction in check_data_space even though we truly didn't have enough space.
So check to see if bytes_pinned is bigger than num_bytes, if it's not don't
commit the transaction.  Thanks,

Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
parent 3de85bb9
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -3089,6 +3089,13 @@ int btrfs_check_data_free_space(struct inode *inode, u64 bytes)
			}
			goto again;
		}

		/*
		 * If we have less pinned bytes than we want to allocate then
		 * don't bother committing the transaction, it won't help us.
		 */
		if (data_sinfo->bytes_pinned < bytes)
			committed = 1;
		spin_unlock(&data_sinfo->lock);

		/* commit the current transaction and try again */