<div dir="auto"><div><br><div class="gmail_extra"><br><div class="gmail_quote">On 16-Jun-2017 11:21 AM, &quot;Shrikant Giridhar&quot; &lt;<a href="mailto:shrikantgiridhar@gmail.com">shrikantgiridhar@gmail.com</a>&gt; wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I&#39;m a little confused about how the mount_bdev() call works.<br>
<br>
The VFS documentation lists it as a generic method to mount a block device.<br>
Based on what I understood from the source, it seems to open a block device<br>
whose path is passed via the mount() syscall and later associates it with<br>
the superblock, finally returning the corresponding dentry to the caller.<br>
<br>
The documentation also mentions that mount() can return a subtree of an<br>
existing filesystem on the block device. However, in the very next line it<br>
mentions that the caller also receives a pointer to the dentry of the root<br>
node. I can see from the source (fs/super.c:1099) that the mount_bdev call<br>
does check if the superblock&#39;s s_root == NULL or not and proceeds to set a<br>
new superblock if it is.<br>
<br>
I know my question sounds a little vague but I&#39;m having trouble understanding<br>
how mount() can return a dentry for something other than the root?<br>
<br>
---<br>
Shrikant<br>
<br>
______________________________<wbr>_________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.<wbr>org</a><br>
<a href="https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" rel="noreferrer" target="_blank">https://lists.kernelnewbies.<wbr>org/mailman/listinfo/<wbr>kernelnewbies</a><br>
</blockquote></div><br></div></div><div class="gmail_extra" dir="auto">Hi Shrikant,</div><div class="gmail_extra" dir="auto"><br></div><div class="gmail_extra" dir="auto">I just had a quick look at mount_bdev() code for Linux v3.15, mount_bdev() can return only root dentry or error.</div><div class="gmail_extra" dir="auto"><br></div><div class="gmail_extra" dir="auto">Also please include the kernel version to which you are referring.</div><div class="gmail_extra" dir="auto"><br></div><div class="gmail_extra" dir="auto">- Rohan</div></div>