#### Describe the bug

maxBodyLength does not work with disabled redirects like when using `{ maxRedirects: 0, maxBodyLength: 100 }` in options.

#### To Reproduce

```js
require("axios")
	.put("http://www.example.com", Buffer.alloc(1000), { maxRedirects: 0, maxBodyLength: 100 })
	.catch(e => console.log("axios returned error:", e));
```

#### Expected behavior

It should print something like:
```
axios returned error: Error [ERR_FR_MAX_BODY_LENGTH_EXCEEDED]: Request body larger than maxBodyLength limit
...
```

As this example does:
```js
require("axios")
	.put("http://www.example.com", Buffer.alloc(1000), { maxBodyLength: 100 })
	.catch(e => console.log("axios returned error:", e));
```

#### Environment
 - Axios Version 0.21.1
 - Adapter HTTP
 - Node.js Version v15.12.0

#### Additional context/Screenshots

lib/adapters/http.js
};
    var data = config.data;
    var headers = config.headers;
    var headerNames = {};
    Object.keys(headers).forEach(function storeLowerName(name) {
      headerNames[name.toLowerCase()] = name;
    });
    
    
    if ('user-agent' in headerNames) {
      
      if (!headers[headerNames['user-agent']]) {
        delete headers[headerNames['user-agent']];
      }
      
    } else {
      
      headers['User-Agent'] = 'axios/' + VERSION;
    }
    if (data && !utils.isStream(data)) {
      if (Buffer.isBuffer(data)) {
        
      } else if (utils.isArrayBuffer(data)) {
        data = Buffer.from(new Uint8Array(data));
      } else if (utils.isString(data)) {
        data = Buffer.from(data, 'utf-8');
      } else {
        return reject(createError(
          'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',
          config