<div dir="ltr"><div>Hello Amar,</div><div>I do the following in worm_create_cbk:</div><div><br></div><div>char *filepath = NULL;<br>inode_path(inode, NULL, &amp;filepath);<br>if (!filepath) {<br>    gf_log(this-&gt;name, GF_LOG_ERROR, &quot;Can&#39;t get filepath!&quot;);</div><div>}</div><div><br></div><div>Unfortunately I got this in the brick log:</div><div>[2020-02-05 10:09:41.880522] E [inode.c:1498:__inode_path] (--&gt;/usr/lib64/glusterfs/5.11/xlator/features/worm.so(+0xb129) [0x7f4657df7129] --&gt;/usr/lib64/libglusterfs.so.0(inode_path+0x31) [0x7f4664e44961] --&gt;/us<br>r/lib64/libglusterfs.so.0(__inode_path+0x38b) [0x7f4664e448bb] ) 0-: Assertion failed: 0<br>[2020-02-05 10:09:41.880580] W [inode.c:1500:__inode_path] (--&gt;/usr/lib64/glusterfs/5.11/xlator/features/worm.so(+0xb129) [0x7f4657df7129] --&gt;/usr/lib64/libglusterfs.so.0(inode_path+0x31) [0x7f4664e44961] --&gt;/us<br>r/lib64/libglusterfs.so.0(__inode_path+0x3d3) [0x7f4664e44903] ) 0-repo2-worm: invalid inode [Invalid argument]<br>[2020-02-05 10:09:41.880594] E [worm.c:488:worm_create_cbk] 0-repo2-worm: Can&#39;t get filepath!</div><div><br></div><div>The inode I use seems to be not valid because inode_path() returns with error. The same with fd-&gt;inode. Is there a way to validate the inode before passing it to the function?</div><div><br></div><div>Regards</div><div>David<br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Di., 4. Feb. 2020 um 17:57 Uhr schrieb Amar Tumballi &lt;<a href="mailto:amar@kadalu.io">amar@kadalu.io</a>&gt;:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 4, 2020 at 7:16 PM David Spisla &lt;<a href="mailto:spisla80@gmail.com" target="_blank">spisla80@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Dear Gluster Community,</div><div>in worm_create_cbk a file gets the xattr &quot;trusted.worm_file&quot; and &quot;trusted.start_time&quot; if worm-file-level is enabled. Now I want to exclude some files in a special folder from the WORM function. Therefore I want to check in worm_create_cbk if the file is in this folder or not. But I don&#39;t find a parameter where the filepath is stored. So my alternative solution was, to check it in worm_create (via loc-&gt;path) and store a boolean value in frame-&gt;local. This boolean value will be used in worm_create_cbk later. But its not my favourite solution.</div><div> <br></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div>Do you know how to get the filepath in the cbk function?</div><div><br></div></div></blockquote><div><br></div><div>As per FS guidelines, inside the filesystem, we need to handle inodes or parent-inode + basename. If you are looking at building a &#39;path&#39; info in create_cbk, then i recommend using &#39;inode_path()&#39; to build the path as per the latest inode table information.  </div><div><br></div><div>-Amar</div></div><br clear="all"><div><br></div>-- <div dir="ltr"><div dir="ltr"><div><a href="https://kadalu.io" target="_blank">https://kadalu.io</a></div><div>Container Storage made easy!</div><div><br></div></div></div></div>
</blockquote></div>