source: trunk/target/linux/generic/patches-2.6.34/215-mini_fo_2.6.30.patch @ 21952

Last change on this file since 21952 was 21952, checked in by nbd, 6 years ago

rename target/linux/generic-2.6 to generic

File size: 5.3 KB
  • fs/mini_fo/aux.c

    a b int get_neg_sto_dentry(dentry_t *dentry) 
    8686        len = dentry->d_name.len; 
    8787        name = dentry->d_name.name; 
    8888 
     89        mutex_lock(&dtohd2(dentry->d_parent)->d_inode->i_mutex); 
    8990        dtohd2(dentry) = 
    9091                lookup_one_len(name, dtohd2(dentry->d_parent), len); 
     92        mutex_unlock(&dtohd2(dentry->d_parent)->d_inode->i_mutex); 
    9193 
    9294 out: 
    9395        return err; 
    int build_sto_structure(dentry_t *dir, d 
    426428                const unsigned char *name; 
    427429                len = dtohd(dentry)->d_name.len; 
    428430                name = dtohd(dentry)->d_name.name; 
     431                mutex_lock(&dtohd2(dir)->d_inode->i_mutex); 
    429432                hidden_sto_dentry = lookup_one_len(name, dtohd2(dir), len); 
     433                mutex_unlock(&dtohd2(dir)->d_inode->i_mutex); 
    430434                dtohd2(dentry) = hidden_sto_dentry; 
    431435        } 
    432436 
  • fs/mini_fo/inode.c

    a b mini_fo_lookup(inode_t *dir, dentry_t *d 
    113113                hidden_dir_dentry = hidden_dentry->d_parent; 
    114114                kfree(bpath); 
    115115        } 
    116         else if(hidden_dir_dentry && hidden_dir_dentry->d_inode) 
     116        else if(hidden_dir_dentry && hidden_dir_dentry->d_inode) { 
     117                mutex_lock(&hidden_dir_dentry->d_inode->i_mutex); 
    117118                hidden_dentry = 
    118119                        lookup_one_len(name, hidden_dir_dentry, namelen); 
    119         else 
     120                mutex_unlock(&hidden_dir_dentry->d_inode->i_mutex); 
     121        } else { 
    120122                hidden_dentry = NULL; 
     123        } 
    121124 
    122         if(hidden_sto_dir_dentry && hidden_sto_dir_dentry->d_inode) 
     125        if(hidden_sto_dir_dentry && hidden_sto_dir_dentry->d_inode) { 
     126                mutex_lock(&hidden_sto_dir_dentry->d_inode->i_mutex); 
    123127                hidden_sto_dentry = 
    124128                        lookup_one_len(name, hidden_sto_dir_dentry, namelen); 
    125         else 
     129                mutex_unlock(&hidden_sto_dir_dentry->d_inode->i_mutex); 
     130        } else { 
    126131                hidden_sto_dentry =  NULL; 
     132        } 
    127133 
    128134        /* catch error in lookup */ 
    129135        if (IS_ERR(hidden_dentry) || IS_ERR(hidden_sto_dentry)) { 
    mini_fo_rmdir(inode_t *dir, dentry_t *de 
    553559#endif 
    554560 
    555561                /* Delete an old WOL file contained in the storage dir */ 
     562                mutex_lock(&hidden_sto_dentry->d_inode->i_mutex); 
    556563                meta_dentry = lookup_one_len(META_FILENAME, 
    557564                                             hidden_sto_dentry, 
    558565                                             strlen(META_FILENAME)); 
     566                mutex_unlock(&hidden_sto_dentry->d_inode->i_mutex); 
    559567                if(meta_dentry->d_inode) { 
    560568                        err = vfs_unlink(hidden_sto_dentry->d_inode, meta_dentry); 
    561569                        dput(meta_dentry); 
    mini_fo_rmdir(inode_t *dir, dentry_t *de 
    643651#endif 
    644652 
    645653                /* Delete an old WOL file contained in the storage dir */ 
     654                mutex_lock(&hidden_sto_dentry->d_inode->i_mutex); 
    646655                meta_dentry = lookup_one_len(META_FILENAME, 
    647656                                             hidden_sto_dentry, 
    648657                                             strlen(META_FILENAME)); 
     658                mutex_unlock(&hidden_sto_dentry->d_inode->i_mutex); 
    649659                if(meta_dentry->d_inode) { 
    650660                        /* is this necessary? dget(meta_dentry); */ 
    651661                        err = vfs_unlink(hidden_sto_dentry->d_inode, 
    mini_fo_rmdir(inode_t *dir, dentry_t *de 
    688698#endif 
    689699 
    690700                /* Delete an old WOL file contained in the storage dir */ 
     701                mutex_lock(&hidden_sto_dentry->d_inode->i_mutex); 
    691702                meta_dentry = lookup_one_len(META_FILENAME, 
    692703                                             hidden_sto_dentry, 
    693704                                             strlen(META_FILENAME)); 
     705                mutex_unlock(&hidden_sto_dentry->d_inode->i_mutex); 
    694706                if(meta_dentry->d_inode) { 
    695707                        /* is this necessary? dget(meta_dentry); */ 
    696708                        err = vfs_unlink(hidden_sto_dentry->d_inode, 
  • fs/mini_fo/meta.c

    a b int meta_build_lists(dentry_t *dentry) 
    4343 
    4444        /* might there be a META-file? */ 
    4545        if(dtohd2(dentry) && dtohd2(dentry)->d_inode) { 
     46                mutex_lock(&dtohd2(dentry)->d_inode->i_mutex); 
    4647                meta_dentry = lookup_one_len(META_FILENAME, 
    4748                                             dtohd2(dentry), 
    4849                                             strlen(META_FILENAME)); 
     50                mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); 
    4951                if(!meta_dentry->d_inode) { 
    5052                        dput(meta_dentry); 
    5153                        goto out_ok; 
    int meta_write_d_entry(dentry_t *dentry, 
    426428                        goto out; 
    427429                } 
    428430        } 
     431 
     432        mutex_lock(&dtohd2(dentry)->d_inode->i_mutex); 
    429433        meta_dentry = lookup_one_len(META_FILENAME, 
    430434                                     dtohd2(dentry), strlen (META_FILENAME)); 
     435        mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); 
    431436 
    432437        /* We need to create a META-file */ 
    433438        if(!meta_dentry->d_inode) { 
    int meta_write_r_entry(dentry_t *dentry, 
    527532                        goto out; 
    528533                } 
    529534        } 
     535 
     536        mutex_lock(&dtohd2(dentry)->d_inode->i_mutex); 
    530537        meta_dentry = lookup_one_len(META_FILENAME, 
    531538                                     dtohd2(dentry), 
    532539                                     strlen (META_FILENAME)); 
     540        mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); 
     541 
    533542        if(!meta_dentry->d_inode) { 
    534543                /* We need to create a META-file */ 
    535544#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) 
    int meta_sync_d_list(dentry_t *dentry, i 
    641650                        goto out; 
    642651                } 
    643652        } 
     653 
     654        mutex_lock(&dtohd2(dentry)->d_inode->i_mutex); 
    644655        meta_dentry = lookup_one_len(META_FILENAME, 
    645656                                     dtohd2(dentry), 
    646657                                     strlen(META_FILENAME)); 
     658        mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); 
     659 
    647660        if(!meta_dentry->d_inode) { 
    648661                /* We need to create a META-file */ 
    649662#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) 
    int meta_sync_r_list(dentry_t *dentry, i 
    784797                        goto out; 
    785798                } 
    786799        } 
     800 
     801        mutex_lock(&dtohd2(dentry)->d_inode->i_mutex); 
    787802        meta_dentry = lookup_one_len(META_FILENAME, 
    788803                                     dtohd2(dentry), 
    789804                                     strlen(META_FILENAME)); 
     805        mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); 
     806 
    790807        if(!meta_dentry->d_inode) { 
    791808                /* We need to create a META-file */ 
    792809#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) 
Note: See TracBrowser for help on using the repository browser.