Ignore:
Timestamp:
Apr 21, 2017, 4:28:29 AM (5 weeks ago)
Author:
brainslayer
Message:

update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/linux/universal/linux-4.9/fs/orangefs/super.c

    r31859 r31885  
    494494        if (ret) {
    495495                d = ERR_PTR(ret);
    496                 goto free_op;
     496                goto free_sb_and_op;
    497497        }
    498498
     
    519519        spin_unlock(&orangefs_superblocks_lock);
    520520        op_release(new_op);
     521
     522        /* Must be removed from the list now. */
     523        ORANGEFS_SB(sb)->no_list = 0;
    521524
    522525        if (orangefs_userspace_version >= 20906) {
     
    534537        return dget(sb->s_root);
    535538
     539free_sb_and_op:
     540        /* Will call orangefs_kill_sb with sb not in list. */
     541        ORANGEFS_SB(sb)->no_list = 1;
     542        deactivate_locked_super(sb);
    536543free_op:
    537544        gossip_err("orangefs_mount: mount request failed with %d\n", ret);
     
    559566         orangefs_unmount_sb(sb);
    560567
    561         /* remove the sb from our list of orangefs specific sb's */
    562 
    563         spin_lock(&orangefs_superblocks_lock);
    564         __list_del_entry(&ORANGEFS_SB(sb)->list);       /* not list_del_init */
    565         ORANGEFS_SB(sb)->list.prev = NULL;
    566         spin_unlock(&orangefs_superblocks_lock);
     568        if (!ORANGEFS_SB(sb)->no_list) {
     569                /* remove the sb from our list of orangefs specific sb's */
     570                spin_lock(&orangefs_superblocks_lock);
     571                /* not list_del_init */
     572                __list_del_entry(&ORANGEFS_SB(sb)->list);
     573                ORANGEFS_SB(sb)->list.prev = NULL;
     574                spin_unlock(&orangefs_superblocks_lock);
     575        }
    567576
    568577        /*
Note: See TracChangeset for help on using the changeset viewer.