On May 3, 2010, at 2:16 PM, Bart Taylor wrote:
> Now that I have circled back around to this, I found that directory creation
> isn't getting squashed either. I see two different cases when issuing a mkdir:
>
> - In the first, the mkdir request enters the prelude state machine, but after
> the PINT_server_req_get_object_ref call in setup, the s_op->target_fs_id is
> still null. That causes it to skip all of the id translation code in
> prelude_perm_check. The mkdir request is followed by a crdirent which does
> get the translated ids, but the crdirent state machine never uses them; I am
> not sure if it needs to.
>
Hi Bart,
I think the patch below should fix the problem you're seeing with mkdir. Do
you want to give it a try? crdirent doesn't use the translated ids because it
doesn't set the attributes. That's left to (in this case) the mkdir operation.
> - In the second case, I don't ever see a mkdir request go through prelude. It
> skips straight to the crdirent.
>
> The first time I issue a mkdir, I generally see the mkdir request go through
> prelude. Subsequent calls just show the crdirent.
Hmm... My guess is this may just be due to the mkdir being sent to a different
server. You have more than one metadata server in this setup, yes? The mkdir
can go to any of the metadata servers, the crdirent always goes to the metadata
server that hosts the parent directory. If that's not the explanation, I'm
stumped. mkdir should always invoke prelude.
-sam
>
> Bart.
>
Index: src/server/mkdir.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/mkdir.sm,v
retrieving revision 1.53
diff -u -a -p -r1.53 mkdir.sm
--- src/server/mkdir.sm 25 Nov 2008 18:26:13 -0000 1.53
+++ src/server/mkdir.sm 6 May 2010 21:32:49 -0000
@@ -318,6 +318,7 @@ static inline int PINT_get_object_ref_mk
struct PINT_server_req_params pvfs2_mkdir_params =
{
.string_name = "mkdir",
+ .get_object_ref = PINT_get_object_ref_mkdir,
.perm = PINT_SERVER_CHECK_NONE,
.access_type = PINT_server_req_modify,
.state_machine = &pvfs2_mkdir_sm
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers