mirror of
https://github.com/containers/fuse-overlayfs.git
synced 2025-09-12 16:57:05 -04:00
main: drop present_lowerdir attribute
use last_layer instead. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
parent
64e493e7e4
commit
f3d66013b3
25
main.c
25
main.c
@ -213,7 +213,6 @@ struct ovl_node
|
||||
ino_t ino;
|
||||
size_t name_hash;
|
||||
|
||||
unsigned int present_lowerdir : 1;
|
||||
unsigned int do_unlink : 1;
|
||||
unsigned int do_rmdir : 1;
|
||||
unsigned int hidden : 1;
|
||||
@ -1326,18 +1325,15 @@ load_dir (struct ovl_data *lo, struct ovl_node *n, struct ovl_layer *layer, char
|
||||
if (child)
|
||||
{
|
||||
child->last_layer = it;
|
||||
if (child->whiteout && it == upper_layer)
|
||||
if (!child->whiteout || it != upper_layer)
|
||||
continue;
|
||||
else
|
||||
{
|
||||
hash_delete (n->children, child);
|
||||
node_free (child);
|
||||
child = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (it->low)
|
||||
child->present_lowerdir = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (lo->fast_ino_check)
|
||||
continue;
|
||||
}
|
||||
@ -1573,8 +1569,7 @@ do_lookup_file (struct ovl_data *lo, fuse_ino_t parent, const char *name)
|
||||
if (node)
|
||||
{
|
||||
node->ino = st.st_ino;
|
||||
if (it->low)
|
||||
node->present_lowerdir = 1;
|
||||
node->last_layer = it;
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1617,11 +1612,9 @@ insert_node:
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
if (node->last_layer)
|
||||
break;
|
||||
|
||||
if (pnode && pnode->last_layer == it)
|
||||
break;
|
||||
|
||||
if (lo->fast_ino_check)
|
||||
break;
|
||||
}
|
||||
@ -3499,7 +3492,7 @@ ovl_rename_exchange (fuse_req_t req, fuse_ino_t parent, const char *name,
|
||||
return;
|
||||
}
|
||||
|
||||
if (node->layer != get_upper_layer (lo) || node->present_lowerdir)
|
||||
if (node->layer != get_upper_layer (lo) || node->last_layer != get_upper_layer (lo))
|
||||
{
|
||||
fuse_reply_err (req, EXDEV);
|
||||
return;
|
||||
@ -3539,7 +3532,7 @@ ovl_rename_exchange (fuse_req_t req, fuse_ino_t parent, const char *name,
|
||||
errno = ENOENT;
|
||||
goto error;
|
||||
}
|
||||
if (node_dirp (node) && destnode->present_lowerdir)
|
||||
if (node_dirp (node) && destnode->last_layer != get_upper_layer (lo))
|
||||
{
|
||||
fuse_reply_err (req, EXDEV);
|
||||
return;
|
||||
@ -3631,7 +3624,7 @@ ovl_rename_direct (fuse_req_t req, fuse_ino_t parent, const char *name,
|
||||
return;
|
||||
}
|
||||
|
||||
if (node->layer != get_upper_layer (lo) || node->present_lowerdir)
|
||||
if (node->layer != get_upper_layer (lo) || node->last_layer != get_upper_layer (lo))
|
||||
{
|
||||
fuse_reply_err (req, EXDEV);
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user