Deleted Added
full compact
36c36
< __FBSDID("$FreeBSD: head/sys/kern/vfs_default.c 220791 2011-04-18 16:32:22Z mdf $");
---
> __FBSDID("$FreeBSD: head/sys/kern/vfs_default.c 220846 2011-04-19 16:36:24Z mdf $");
868c868
< off_t len, cur, offset;
---
> off_t fsize, len, cur, offset;
873c873
< int error, locked;
---
> int error;
877d876
< locked = 1;
881,882c880,881
< len = ap->a_len;
< offset = ap->a_offset;
---
> len = *ap->a_len;
> offset = *ap->a_offset;
886a886
> fsize = vap->va_size;
910a911,913
> /*
> * Test offset + len against the filesystem's maxfilesize.
> */
915a919,923
> VATTR_NULL(vap);
> vap->va_size = fsize;
> error = VOP_SETATTR(vp, vap, td->td_ucred);
> if (error != 0)
> goto out;
918,931c926
< while (len > 0) {
< if (should_yield()) {
< VOP_UNLOCK(vp, 0);
< locked = 0;
< kern_yield(-1);
< error = vn_lock(vp, LK_EXCLUSIVE);
< if (error != 0)
< break;
< locked = 1;
< error = VOP_GETATTR(vp, vap, td->td_ucred);
< if (error != 0)
< break;
< }
<
---
> for (;;) {
942c937
< if (offset < vap->va_size) {
---
> if (offset < fsize) {
978a974,977
> if (len == 0)
> break;
> if (should_yield())
> break;
982,984c981,982
< KASSERT(locked || error != 0, ("How'd I get unlocked with no error?"));
< if (locked && error != 0)
< VOP_UNLOCK(vp, 0);
---
> *ap->a_len = len;
> *ap->a_offset = offset;