Cygwin: path_conv: rename is_rep_symlink to is_known_reparse_point
...in preparation of reusing this flag for other types of reparse points, not only symlinks. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
a27a7752ec
commit
7ae89fe708
|
@ -594,9 +594,9 @@ fhandler_base::open (int flags, mode_t mode)
|
||||||
|
|
||||||
if (get_device () == FH_FS)
|
if (get_device () == FH_FS)
|
||||||
{
|
{
|
||||||
/* Add the reparse point flag to native symlinks, otherwise we open the
|
/* Add the reparse point flag to known repares points, otherwise we
|
||||||
target, not the symlink. This would break lstat. */
|
open the target, not the reparse point. This would break lstat. */
|
||||||
if (pc.is_rep_symlink ())
|
if (pc.is_known_reparse_point ())
|
||||||
options |= FILE_OPEN_REPARSE_POINT;
|
options |= FILE_OPEN_REPARSE_POINT;
|
||||||
|
|
||||||
/* O_TMPFILE files are created with delete-on-close semantics, as well
|
/* O_TMPFILE files are created with delete-on-close semantics, as well
|
||||||
|
|
|
@ -1977,7 +1977,7 @@ readdir_get_ino (const char *path, bool dot_dot)
|
||||||
pc.get_object_attr (attr, sec_none_nih),
|
pc.get_object_attr (attr, sec_none_nih),
|
||||||
&io, FILE_SHARE_VALID_FLAGS,
|
&io, FILE_SHARE_VALID_FLAGS,
|
||||||
FILE_OPEN_FOR_BACKUP_INTENT
|
FILE_OPEN_FOR_BACKUP_INTENT
|
||||||
| (pc.is_rep_symlink ()
|
| (pc.is_known_reparse_point ()
|
||||||
? FILE_OPEN_REPARSE_POINT : 0)))
|
? FILE_OPEN_REPARSE_POINT : 0)))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1013,7 +1013,7 @@ path_conv::check (const char *src, unsigned opt,
|
||||||
saw_symlinks = 1;
|
saw_symlinks = 1;
|
||||||
if (component == 0 && !need_directory
|
if (component == 0 && !need_directory
|
||||||
&& (!(opt & PC_SYM_FOLLOW)
|
&& (!(opt & PC_SYM_FOLLOW)
|
||||||
|| (is_rep_symlink ()
|
|| (is_known_reparse_point ()
|
||||||
&& (opt & PC_SYM_NOFOLLOW_REP))))
|
&& (opt & PC_SYM_NOFOLLOW_REP))))
|
||||||
{
|
{
|
||||||
/* last component of path is a symlink. */
|
/* last component of path is a symlink. */
|
||||||
|
|
|
@ -183,7 +183,7 @@ class path_conv
|
||||||
}
|
}
|
||||||
int issymlink () const {return path_flags & PATH_SYMLINK;}
|
int issymlink () const {return path_flags & PATH_SYMLINK;}
|
||||||
int is_lnk_symlink () const {return path_flags & PATH_LNK;}
|
int is_lnk_symlink () const {return path_flags & PATH_LNK;}
|
||||||
int is_rep_symlink () const {return path_flags & PATH_REP;}
|
int is_known_reparse_point () const {return path_flags & PATH_REP;}
|
||||||
int isdevice () const {return dev.not_device (FH_FS) && dev.not_device (FH_FIFO);}
|
int isdevice () const {return dev.not_device (FH_FS) && dev.not_device (FH_FIFO);}
|
||||||
int isfifo () const {return dev.is_device (FH_FIFO);}
|
int isfifo () const {return dev.is_device (FH_FIFO);}
|
||||||
int isspecial () const {return dev.not_device (FH_FS);}
|
int isspecial () const {return dev.not_device (FH_FS);}
|
||||||
|
|
|
@ -705,9 +705,9 @@ unlink_nt (path_conv &pc)
|
||||||
pc.get_nt_native_path (), pc.isdir ());
|
pc.get_nt_native_path (), pc.isdir ());
|
||||||
ACCESS_MASK access = DELETE;
|
ACCESS_MASK access = DELETE;
|
||||||
ULONG flags = FILE_OPEN_FOR_BACKUP_INTENT;
|
ULONG flags = FILE_OPEN_FOR_BACKUP_INTENT;
|
||||||
/* Add the reparse point flag to native symlinks, otherwise we remove the
|
/* Add the reparse point flag to known reparse points, otherwise we remove
|
||||||
target, not the symlink. */
|
the target, not the reparse point. */
|
||||||
if (pc.is_rep_symlink ())
|
if (pc.is_known_reparse_point ())
|
||||||
flags |= FILE_OPEN_REPARSE_POINT;
|
flags |= FILE_OPEN_REPARSE_POINT;
|
||||||
|
|
||||||
pc.get_object_attr (attr, sec_none_nih);
|
pc.get_object_attr (attr, sec_none_nih);
|
||||||
|
@ -2477,7 +2477,8 @@ rename2 (const char *oldpath, const char *newpath, unsigned int flags)
|
||||||
ULONG sharing = FILE_SHARE_READ | FILE_SHARE_WRITE
|
ULONG sharing = FILE_SHARE_READ | FILE_SHARE_WRITE
|
||||||
| (oldpc.fs_is_samba () ? 0 : FILE_SHARE_DELETE);
|
| (oldpc.fs_is_samba () ? 0 : FILE_SHARE_DELETE);
|
||||||
ULONG flags = FILE_OPEN_FOR_BACKUP_INTENT
|
ULONG flags = FILE_OPEN_FOR_BACKUP_INTENT
|
||||||
| (oldpc.is_rep_symlink () ? FILE_OPEN_REPARSE_POINT : 0);
|
| (oldpc.is_known_reparse_point ()
|
||||||
|
? FILE_OPEN_REPARSE_POINT : 0);
|
||||||
status = NtOpenFile (&fh, access,
|
status = NtOpenFile (&fh, access,
|
||||||
oldpc.get_object_attr (attr, sec_none_nih),
|
oldpc.get_object_attr (attr, sec_none_nih),
|
||||||
&io, sharing, flags);
|
&io, sharing, flags);
|
||||||
|
@ -2541,7 +2542,7 @@ rename2 (const char *oldpath, const char *newpath, unsigned int flags)
|
||||||
dstpc->get_object_attr (attr, sec_none_nih),
|
dstpc->get_object_attr (attr, sec_none_nih),
|
||||||
&io, FILE_SHARE_VALID_FLAGS,
|
&io, FILE_SHARE_VALID_FLAGS,
|
||||||
FILE_OPEN_FOR_BACKUP_INTENT
|
FILE_OPEN_FOR_BACKUP_INTENT
|
||||||
| (dstpc->is_rep_symlink ()
|
| (dstpc->is_known_reparse_point ()
|
||||||
? FILE_OPEN_REPARSE_POINT : 0));
|
? FILE_OPEN_REPARSE_POINT : 0));
|
||||||
if (!NT_SUCCESS (status))
|
if (!NT_SUCCESS (status))
|
||||||
{
|
{
|
||||||
|
@ -2575,7 +2576,7 @@ rename2 (const char *oldpath, const char *newpath, unsigned int flags)
|
||||||
(removepc ?: dstpc)->get_object_attr (attr, sec_none_nih),
|
(removepc ?: dstpc)->get_object_attr (attr, sec_none_nih),
|
||||||
&io, FILE_SHARE_VALID_FLAGS,
|
&io, FILE_SHARE_VALID_FLAGS,
|
||||||
FILE_OPEN_FOR_BACKUP_INTENT
|
FILE_OPEN_FOR_BACKUP_INTENT
|
||||||
| ((removepc ?: dstpc)->is_rep_symlink ()
|
| ((removepc ?: dstpc)->is_known_reparse_point ()
|
||||||
? FILE_OPEN_REPARSE_POINT : 0))))
|
? FILE_OPEN_REPARSE_POINT : 0))))
|
||||||
{
|
{
|
||||||
FILE_INTERNAL_INFORMATION ofii, nfii;
|
FILE_INTERNAL_INFORMATION ofii, nfii;
|
||||||
|
@ -2651,7 +2652,7 @@ rename2 (const char *oldpath, const char *newpath, unsigned int flags)
|
||||||
oldpc.get_object_attr (attr, sec_none_nih),
|
oldpc.get_object_attr (attr, sec_none_nih),
|
||||||
&io, FILE_SHARE_VALID_FLAGS,
|
&io, FILE_SHARE_VALID_FLAGS,
|
||||||
FILE_OPEN_FOR_BACKUP_INTENT
|
FILE_OPEN_FOR_BACKUP_INTENT
|
||||||
| (oldpc.is_rep_symlink ()
|
| (oldpc.is_known_reparse_point ()
|
||||||
? FILE_OPEN_REPARSE_POINT : 0));
|
? FILE_OPEN_REPARSE_POINT : 0));
|
||||||
if (NT_SUCCESS (status))
|
if (NT_SUCCESS (status))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue