leases: split up generic_setlease into lock/unlock cases