I found out the problem with the kernel hanging. The problem was in query-info request - we need to set size of our buffer in a request but we had sizeof(FILE_ALL_INFO_SMB2) + sizeof(query_req) there. I removed sizeof(query_req) and expand buffer to store information about filename - (+ MAX_NAME*2). So, I rebased my branch with this and other fixes and put it on top of the current master. As the result, now I have mount/umount and stat work correctly (according to my stress mount/stat/umount test). pending cifs patches: http://git.etersoft.ru/people/piastry/packages/?p=cifs-2.6.git;a=shortlog;h=refs/heads/smb2-dev my patches: http://git.etersoft.ru/people/piastry/packages/?p=cifs-2.6.git;a=shortlog;h=refs/heads/smb2-dev-experimental As the next steps, I think we need to reconsider mid structure - now I think that having one big structure for both protocols is the best way to keep code cleaner. Also, I can start implementing inode/file operations as well. Comments? -- Best regards, Pavel Shilovsky. -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html