### Summary

With a simple playbook:
```yaml
---
- hosts: all
  gather_facts: false
  tasks:
    - name: Test setup
      ansible.builtin.setup:
        gather_subset:
          - mounts
        gather_timeout: 600
```

```gather_timeout``` is never taken in effect in the function get_mount_facts in ansible/module_utils/facts/hardware/linux.py.

The problem seem to point to this line:
```python
maxtime = globals().get('GATHER_TIMEOUT') or timeout.DEFAULT_GATHER_TIMEOUT
```
```globals().get('GATHER_TIMEOUT')``` is always ```None``` because because ```GATHER_TIMEOUT``` is set in the timeout module ansible/module_utils/facts/collector.py therefore the global is ```timeout.GATHER_TIMEOUT``` and not ```GATHER_TIMEOUT```.

Attached are two screenshot from a vscode debug session of the AnsiballZ_setup.py from the playbook above.
<img width="949" alt="ansible_setup_timeout_linux" src="https://user-images.githubusercontent.com/1870021/215522822-fd1f8541-907d-4f1f-9dba-c8cec299514e.png">
<img width="1008" alt="ansible_setup_timeout_collector" src="https://user-images.githubusercontent.com/1870021/215522828-a9e3ea51-0da3-4497-aee6-c58ce7f7c801.png">


### Issue Type

Bug Report

### Component Name

setup

### Ansible Version

```console
$ ansible --version
ansible [core 2.14.1]
  config file = /home/dsg4269/.ansible.cfg
  configured module search path = ['/home/dsg4269/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/dsg4269/dev/git/test_timeout_fact_mount/.venv/lib64/python3.11/site-packages/ansible
  ansible collection location = /home/dsg4269/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/dsg4269/dev/git/test_timeout_fact_mount/.venv/bin/ansible
  python version = 3.11.1 (main, Jan  6 2023, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)] (/home/dsg4269/dev/git/test_timeout_fact_mount/.venv/bin/python3)
  jinja version = 3.1.2
  libyaml = True
```


### Configuration

```console
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed -t all
CONFIG_FILE() = None
```


### OS / Environment

Reproduce on RHEL 7.9 and WSL Fedora 37

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml
---
- hosts: all
  gather_facts: false
  tasks:
    - name: Test setup
      ansible.builtin.setup:
        gather_subset:
          - mounts
        gather_timeout: 600

```


### Expected Results

I expected the gather_timeout to be taken in effect in the setup module of the subset mounts.

### Actual Results

```console
Facts have a timeout on system with a lot of filesystem:

{
    "device": "/dev/mapper/VolGroup00-lv_varlog",
    "fstype": "xfs",
    "mount": "/var/log",
    "note": "Timed out while attempting to get extra information.",
    "options": "rw,seclabel,nodev,relatime,attr2,inode64,noquota"
}
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
return {
            'ids': self.get_device_links('/dev/disk/by-id'),
            'uuids': self.get_device_links('/dev/disk/by-uuid'),
            'labels': self.get_device_links('/dev/disk/by-label'),
            'masters': self.get_all_device_owners(),
        }
    def get_holders(self, block_dev_dict, sysdir):
        block_dev_dict['holders'] = []
        if os.path.isdir(sysdir + "/holders"):
            for folder in os.listdir(sysdir + "/holders"):
                if not folder.startswith("dm-"):
                    continue
                name = get_file_content(sysdir + "/holders/" + folder + "/dm/name")
                if name:
                    block_dev_dict['holders'].append(name)
                else:
                    block_dev_dict['holders'].append(folder)
    def _get_sg_inq_serial(self, sg_inq, block):
        device = "/dev/%s" % (block)
        rc, drivedata, err = self.module.run_command([sg_inq, device])
        if rc == 0:
            serial = re.search(r"(?:Unit serial|Serial) number:\s+(\w+)", drivedata)
            if serial:
                return serial.group(1)
    def get_device_facts(self):