Я очень удивлен здесь, зная, что это не распространяется на любую страницу руководства относительно монтирования NFS. Погружение в коде ядра, в функции nfs_validate_text_mount_data, функция nfs_parse_mount_options отвечает за разбор нескольких разделенных запятыми параметров, передаваемых в качестве пятого аргумента в монтирования системный вызов.
struct sockaddr *sap = (struct sockaddr *)&args->nfs_server.address;
if (nfs_parse_mount_options((char *)options, args) == 0)
return -EINVAL;
if (!nfs_verify_server_address(sap))
goto out_no_address;
В приведенном выше кодовом блоке последний оператор if проверяет, соответствует ли адрес сервера nfs и семейство сокетов допустимым значениям. Если они не обновлены в пределах nfs_parse_mount_options, mount вернет неверный параметр.
Если реализация nfs_parse_mount_options гуляют через, можно видеть, что только для случая Opt_addr, адрес сервера NFS и семья сокета обновляется путем анализа опций аргумента.
case Opt_addr:
string = match_strdup(args);
if (string == NULL)
goto out_nomem;
mnt->nfs_server.addrlen =
rpc_pton(mnt->net, string, strlen(string),
(struct sockaddr *)
&mnt->nfs_server.address,
sizeof(mnt->nfs_server.address));
kfree(string);
if (mnt->nfs_server.addrlen == 0)
goto out_invalid_address;
break;
Дело Opt_addr соответствует параметру "адр = Nfs сервер IP". Таким образом, для системного вызова для работы, определение этого параметра - должно. Насколько я искал, это полностью отсутствует на всех страницах руководства, в которых описывается монтирование nfs.
Так что теперь рассматривает постановку задачи, пожалуйста, попробуйте с помощью изменения в коде ниже
if(mount(":/vol/home/avinoba/Sky","/mnt","nfs",0,"nolock,addr=10.126.62.45") == -1)
{
printf("ERROR: mount failed: %s \n",strerror(errno));
}
Также отметим, что, когда адр вариант ставится в аргументе, IP-адрес в передней части Путь сервера nfs становится необязательным. Однако необходимо: ':', поскольку это действует как разделитель для анализа пути сервера nfs.
У вас может быть 'strace'-ed команда' mount', чтобы найти точные syscalls, которые она делает –