<html><body bgcolor="#FFFFFF"><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">On 2010-10-20, at 7:30, Eric Barton <<a href="mailto:eeb@whamcloud.com">eeb@whamcloud.com</a>> wrote:</span></div><blockquote type="cite"><div><blockquote type="cite"><span>On 10/20/10 12:24 PM, Andreas Dilger wrote:</span><br></blockquote><blockquote type="cite"><blockquote type="cite"><span>I'm reluctant to expose the whole FID namespace to applications, </span><br></blockquote></blockquote><span></span><br><span>??? It can just be opaque bytes to the app.</span><font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#0023A3"><br></font></font></div></blockquote><div><br></div>This was in reply to Alex Z's comments that we can just do open-by-FID from userspace.<div><br><blockquote type="cite"><div><blockquote type="cite"><blockquote type="cite"><span>since this completely bypasses all directory permissions and allows</span><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><span>opening files only based on their inode permissions.  If we require a</span><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><span>name_to_handle() syscall to succeed first, before allowing</span><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><span>open_by_handle() to work, then at least we know that one of the</span><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><span>involved processes was able to do a full path traversal.</span><br></blockquote></blockquote><span></span><br><span>I think this defeats the scalability objective - we trying to avoid having</span><br><span>to pull the namespace into every client aren't we?</span><br></div></blockquote><div><br></div>The name_to_handle() only needs to be called on a single node, and open_by_handle() is called on the other nodes. I agree that this doesn't avoid the full O(n) RPCs for the open itself  but at least it does avoid the full path traversal from every client and on the MDS <span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">(replacing it with an MPI broadcast of the handle)<span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); ">. </span></span></div><div><br><blockquote type="cite"><div><span></span></div></blockquote></div><div>Cheers, Andreas</div></body></html>