multiuser mount option regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I narrowed the regression for multiuser mounts down (which Ronnie had
mentioned) to this patch (one of the first applied to 5.17 merge
window for cifs.ko).   I am curious whether this is also related to
the hard to reproduce reconnect issue that the regression tracker was
monitoring

commit 73f9bfbe3d818bb52266d5c9f3ba57d97842ffe7 (HEAD -> tmp)
Author: Shyam Prasad N <sprasad@xxxxxxxxxxxxx>
Date:   Mon Jul 19 17:37:52 2021 +0000

    cifs: maintain a state machine for tcp/smb/tcon sessions

    If functions like cifs_negotiate_protocol, cifs_setup_session,
    cifs_tree_connect are called in parallel on different channels,
    each of these will be execute the requests. This maybe unnecessary
    in some cases, and only the first caller may need to do the work.

    This is achieved by having more states for the tcp/smb/tcon session
    status fields. And tracking the state of reconnection based on the
    state machine.

    For example:
    for tcp connections:
    CifsNew/CifsNeedReconnect ->
      CifsNeedNegotiate ->
        CifsInNegotiate ->
          CifsNeedSessSetup ->
            CifsInSessSetup ->
              CifsGood

    for smb sessions:
    CifsNew/CifsNeedReconnect ->
      CifsGood

     CifsNew/CifsNeedReconnect ->
      CifsInFilesInvalidate ->
        CifsNeedTcon ->
          CifsInTcon ->
            CifsGood

    If any channel reconnect sees that it's in the middle of
    transition to CifsGood, then they can skip the function.



-- 
Thanks,

Steve



[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux