<div dir="ltr"><div style="font-family:arial,sans-serif;font-size:13px"><div>  We all know that system-calls are for user-space.</div><div>I have a file-system driver where I have to use system calls in kernel-space.</div>
<div><br></div><div> Normally, we DON&#39;T do any high level IOs from Kernel space (file creation/reading, and so on). But here in my driver I am  stacking FS drivers, I can&#39;t avoid this. This is partly because Linux kernel can&#39;t handle FS stacking (this wouldn&#39;t be an issue for Windows, for instance, which supports stacking),</div>
<div><br></div><div>The simple (and legal) way to create a dir/file whatever is to call system calls, like, for instance sys_mkdir. The problem is that I am not in a context where I can call these. Because they expect a call from user mode, while I am in kernel mode. This is even why I implemented macros such as: <a href="https://github.com/HeisSpiter/hepunion/blob/master/fs/hepunion/hepunion.h#L399" target="_blank">https://github.com/HeisSpiter/hepunion/blob/master/fs/hepunion/hepunion.h#L399</a>. This one disables all checks from user mode calls, since I am in kernel. And this allows calling system calls.</div>
<div><br></div><div> This is not a good way so is there any alternative.<br></div></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Regards,</div>
<div style="font-family:arial,sans-serif;font-size:13px">Saket Sinha</div></div>