'Mount this partition to a mount point
:param mountpoint: If you have not provided a mountpoint to partition
object or want to use a different one, you may specify it here.
:param fstype: Filesystem type. If not provided partition object value
will be used.
:param args: Arguments to be passed to "mount" command.
:param record: If True, output result of mount operation to autotest
output.'

def mount(self, mountpoint=None, fstype=None, args='', record=True):

    if (fstype is None):
        fstype = self.fstype
    else:
        assert ((self.fstype is None) or (self.fstype == fstype))
    if self.mount_options:
        args += ('    -o        ' + self.mount_options)
    if fstype:
        args += ('    -t    ' + fstype)
    if self.loop:
        args += '    -o    loop'
    args = args.lstrip()
    if ((not mountpoint) and (not self.mountpoint)):
        raise ValueError('No    mountpoint    specified    and    no    default    provided    to    this    partition    object')
    if (not mountpoint):
        mountpoint = self.mountpoint
    mount_cmd = ('mount    %s    %s    %s' % (args, self.device, mountpoint))
    if list_mount_devices().count(self.device):
        err = 'Attempted    to    mount    mounted    device'
        self.job.record('FAIL', None, mount_cmd, err)
        raise NameError(err)
    if list_mount_points().count(mountpoint):
        err = 'Attempted    to    mount    busy    mountpoint'
        self.job.record('FAIL', None, mount_cmd, err)
        raise NameError(err)
    mtab = open('/etc/mtab')
    fcntl.flock(mtab.fileno(), fcntl.LOCK_EX)
    sys.stdout.flush()
    if (not os.path.isdir(mountpoint)):
        os.makedirs(mountpoint)
    try:
        utils.system(mount_cmd)
        mtab.close()
    except Exception:
        mtab.close()
        if record:
            self.job.record('FAIL', None, mount_cmd, error.format_error())
        raise
    else:
        if record:
            self.job.record('GOOD', None, mount_cmd)
        self.fstype = fstype
