Really fix give not to wipe out concurrent updates

give() continues after check_sect_ok() fails.  Clobbers the updates
that made check_sect_ok() fail, triggering a seqno mismatch oops.

Commit b58c37e2 (v4.3.27) claimed to fix this, but actually only
suppressed the generation oops.
This commit is contained in:
Markus Armbruster 2013-01-08 17:37:37 +01:00
parent efa4ecdc4d
commit c4c4413ea5

View file

@ -62,7 +62,8 @@ give(void)
return RET_SYN;
if ((amt = atoi(p)) == 0)
return RET_SYN;
check_sect_ok(&sect);
if (!check_sect_ok(&sect))
return RET_FAIL;
n = sect.sct_item[ip->i_uid];
if (amt < 0 && -amt > n) {
m = 0;