setting SUPPORTS_HARD_LINKS if link_support is enabled
This commit is contained in:
parent
8688d75574
commit
7eae229661
3 changed files with 9 additions and 1 deletions
|
|
@ -191,6 +191,7 @@ typedef struct __nfs41_file_info {
|
||||||
bool_t case_preserving;
|
bool_t case_preserving;
|
||||||
bool_t symlink_dir;
|
bool_t symlink_dir;
|
||||||
bool_t symlink_support;
|
bool_t symlink_support;
|
||||||
|
bool_t link_support;
|
||||||
} nfs41_file_info;
|
} nfs41_file_info;
|
||||||
|
|
||||||
#endif /* !__NFS41_DAEMON_TYPES_H__ */
|
#endif /* !__NFS41_DAEMON_TYPES_H__ */
|
||||||
|
|
|
||||||
|
|
@ -1552,6 +1552,10 @@ static bool_t decode_file_attrs(
|
||||||
if (!xdr_u_hyper(xdr, &info->size))
|
if (!xdr_u_hyper(xdr, &info->size))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
if (attrs->attrmask.arr[0] & FATTR4_WORD0_LINK_SUPPORT) {
|
||||||
|
if (!xdr_bool(xdr, &info->link_support))
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
if (attrs->attrmask.arr[0] & FATTR4_WORD0_SYMLINK_SUPPORT) {
|
if (attrs->attrmask.arr[0] & FATTR4_WORD0_SYMLINK_SUPPORT) {
|
||||||
if (!xdr_bool(xdr, &info->symlink_support))
|
if (!xdr_bool(xdr, &info->symlink_support))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,8 @@ static int handle_volume_attributes(
|
||||||
/* query the case_ attributes of the root filesystem */
|
/* query the case_ attributes of the root filesystem */
|
||||||
nfs41_file_info info = { 0 };
|
nfs41_file_info info = { 0 };
|
||||||
bitmap4 attr_request = { 1, { FATTR4_WORD0_CASE_INSENSITIVE |
|
bitmap4 attr_request = { 1, { FATTR4_WORD0_CASE_INSENSITIVE |
|
||||||
FATTR4_WORD0_CASE_PRESERVING | FATTR4_WORD0_SYMLINK_SUPPORT} };
|
FATTR4_WORD0_CASE_PRESERVING | FATTR4_WORD0_SYMLINK_SUPPORT |
|
||||||
|
FATTR4_WORD0_LINK_SUPPORT } };
|
||||||
PFILE_FS_ATTRIBUTE_INFORMATION attr = &args->info.attribute;
|
PFILE_FS_ATTRIBUTE_INFORMATION attr = &args->info.attribute;
|
||||||
int status = NO_ERROR;
|
int status = NO_ERROR;
|
||||||
|
|
||||||
|
|
@ -109,6 +110,8 @@ static int handle_volume_attributes(
|
||||||
}
|
}
|
||||||
|
|
||||||
attr->FileSystemAttributes = FILE_SUPPORTS_REMOTE_STORAGE;
|
attr->FileSystemAttributes = FILE_SUPPORTS_REMOTE_STORAGE;
|
||||||
|
if (info.link_support)
|
||||||
|
attr->FileSystemAttributes |= FILE_SUPPORTS_HARD_LINKS;
|
||||||
if (info.symlink_support)
|
if (info.symlink_support)
|
||||||
attr->FileSystemAttributes |= FILE_SUPPORTS_REPARSE_POINTS;
|
attr->FileSystemAttributes |= FILE_SUPPORTS_REPARSE_POINTS;
|
||||||
if (info.case_preserving)
|
if (info.case_preserving)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue