source: trunk/target/linux/generic-2.6/patches-2.6.33/210-mini_fo_2.6.25_fixes.patch @ 19920

Last change on this file since 19920 was 19920, checked in by florian, 7 years ago

[kernel] misc 2.6.33 compilation and config symbols fixes

File size: 3.8 KB
  • fs/mini_fo/main.c

    a b mini_fo_tri_interpose(dentry_t *hidden_d 
    7979         * of the new inode's fields 
    8080         */ 
    8181 
     82#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) 
    8283        /* 
    8384         * original: inode = iget(sb, hidden_inode->i_ino); 
    8485         */ 
    mini_fo_tri_interpose(dentry_t *hidden_d 
    8788                err = -EACCES;          /* should be impossible??? */ 
    8889                goto out; 
    8990        } 
     91#else 
     92        inode = mini_fo_iget(sb, iunique(sb, 25)); 
     93        if (IS_ERR(inode)) { 
     94                err = PTR_ERR(inode); 
     95                goto out; 
     96        } 
     97#endif 
    9098 
    9199        /* 
    92100         * interpose the inode if not already interposed 
    mini_fo_parse_options(super_block_t *sb, 
    184192                                hidden_root = ERR_PTR(err); 
    185193                                goto out; 
    186194                        } 
    187                         hidden_root = nd.dentry; 
    188                         stopd(sb)->base_dir_dentry = nd.dentry; 
    189                         stopd(sb)->hidden_mnt = nd.mnt; 
     195                        hidden_root = nd_get_dentry(&nd); 
     196                        stopd(sb)->base_dir_dentry = nd_get_dentry(&nd); 
     197                        stopd(sb)->hidden_mnt = nd_get_mnt(&nd); 
    190198 
    191199                } else if(!strncmp("sto=", options, 4)) { 
    192200                        /* parse the storage dir */ 
    mini_fo_parse_options(super_block_t *sb, 
    204212                                hidden_root2 = ERR_PTR(err); 
    205213                                goto out; 
    206214                        } 
    207                         hidden_root2 = nd2.dentry; 
    208                         stopd(sb)->storage_dir_dentry = nd2.dentry; 
    209                         stopd(sb)->hidden_mnt2 = nd2.mnt; 
     215                        hidden_root2 = nd_get_dentry(&nd2); 
     216                        stopd(sb)->storage_dir_dentry = nd_get_dentry(&nd2); 
     217                        stopd(sb)->hidden_mnt2 = nd_get_mnt(&nd2); 
    210218                        stohs2(sb) = hidden_root2->d_sb; 
    211219 
    212220                        /* validate storage dir, this is done in 
  • fs/mini_fo/mini_fo.h

    a b extern int mini_fo_tri_interpose(dentry_ 
    302302extern int mini_fo_cp_cont(dentry_t *tgt_dentry, struct vfsmount *tgt_mnt, 
    303303                           dentry_t *src_dentry, struct vfsmount *src_mnt); 
    304304 
     305#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25) 
     306extern struct inode *mini_fo_iget(struct super_block *sb, unsigned long ino); 
     307#endif 
     308 
    305309#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) 
    306310extern int mini_fo_create(inode_t *dir, dentry_t *dentry, int mode, struct nameidata *nd); 
    307311 
    static inline void double_unlock(struct 
    501505#endif  /* if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) */ 
    502506#endif /* __KERNEL__ */ 
    503507 
     508 
     509#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25) 
     510static inline dentry_t *nd_get_dentry(struct nameidata *nd) 
     511{ 
     512        return (nd->path.dentry); 
     513} 
     514 
     515static inline struct vfsmount *nd_get_mnt(struct nameidata *nd) 
     516{ 
     517        return (nd->path.mnt); 
     518} 
     519#else 
     520static inline dentry_t *nd_get_dentry(struct nameidata *nd) 
     521{ 
     522        return (nd->dentry); 
     523} 
     524 
     525static inline struct vfsmount *nd_get_mnt(struct nameidata *nd) 
     526{ 
     527        return (nd->mnt); 
     528} 
     529#endif 
     530 
    504531/* 
    505532 * Definitions for user and kernel code 
    506533 */ 
  • fs/mini_fo/super.c

    a b mini_fo_umount_begin(super_block_t *sb) 
    262262} 
    263263#endif 
    264264 
     265#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25) 
     266struct inode * 
     267mini_fo_iget(struct super_block *sb, unsigned long ino) 
     268{ 
     269        struct inode *inode; 
     270 
     271        inode = iget_locked(sb, ino); 
     272        if (!inode) 
     273                return ERR_PTR(-ENOMEM); 
     274 
     275        if (!(inode->i_state & I_NEW)) 
     276                return inode; 
     277 
     278        mini_fo_read_inode(inode); 
     279 
     280        unlock_new_inode(inode); 
     281        return inode; 
     282} 
     283#endif /* if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25) */ 
    265284 
    266285struct super_operations mini_fo_sops = 
    267286{ 
     287#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) 
    268288        read_inode:             mini_fo_read_inode, 
     289#endif 
    269290#if defined(FIST_DEBUG) || defined(FIST_FILTER_SCA) 
    270291        write_inode:    mini_fo_write_inode, 
    271292#endif /* defined(FIST_DEBUG) || defined(FIST_FILTER_SCA) */ 
  • fs/mini_fo/aux.c

    a b dentry_t *bpath_walk(super_block_t *sb, 
    164164        err = vfs_path_lookup(mnt->mnt_root, mnt, bpath+1, 0, &nd); 
    165165 
    166166        /* validate */ 
    167         if (err || !nd.dentry || !nd.dentry->d_inode) { 
     167        if (err || !nd_get_dentry(&nd) || !nd_get_dentry(&nd)->d_inode) { 
    168168                printk(KERN_CRIT "mini_fo: bpath_walk: path_walk failed.\n"); 
    169169                return NULL; 
    170170        } 
    171         return nd.dentry; 
     171        return nd_get_dentry(&nd); 
    172172} 
    173173 
    174174 
Note: See TracBrowser for help on using the repository browser.