Loading fs/coda/upcall.c +54 −65 Original line number Diff line number Diff line Loading @@ -859,52 +859,43 @@ static int coda_upcall(struct coda_sb_info *sbi, int coda_downcall(int opcode, union outputArgs * out, struct super_block *sb) { struct inode *inode = NULL; struct CodaFid *fid, *newfid; /* Handle invalidation requests. */ if ( !sb || !sb->s_root || !sb->s_root->d_inode) if ( !sb || !sb->s_root) return 0; switch (opcode) { case CODA_FLUSH : { case CODA_FLUSH: coda_cache_clear_all(sb); shrink_dcache_sb(sb); if (sb->s_root->d_inode) coda_flag_inode(sb->s_root->d_inode, C_FLUSH); return(0); } break; case CODA_PURGEUSER : { case CODA_PURGEUSER: coda_cache_clear_all(sb); return(0); } case CODA_ZAPDIR : { struct inode *inode; struct CodaFid *fid = &out->coda_zapdir.CodaFid; break; case CODA_ZAPDIR: fid = &out->coda_zapdir.CodaFid; inode = coda_fid_to_inode(fid, sb); if (inode) { coda_flag_inode_children(inode, C_PURGE); coda_flag_inode(inode, C_VATTR); iput(inode); } return(0); } break; case CODA_ZAPFILE : { struct inode *inode; struct CodaFid *fid = &out->coda_zapfile.CodaFid; case CODA_ZAPFILE: fid = &out->coda_zapfile.CodaFid; inode = coda_fid_to_inode(fid, sb); if ( inode ) { if (inode) coda_flag_inode(inode, C_VATTR); iput(inode); } return 0; } break; case CODA_PURGEFID : { struct inode *inode; struct CodaFid *fid = &out->coda_purgefid.CodaFid; case CODA_PURGEFID: fid = &out->coda_purgefid.CodaFid; inode = coda_fid_to_inode(fid, sb); if (inode) { coda_flag_inode_children(inode, C_PURGE); Loading @@ -913,23 +904,21 @@ int coda_downcall(int opcode, union outputArgs * out, struct super_block *sb) coda_flag_inode(inode, C_PURGE); d_prune_aliases(inode); iput(inode); } return 0; break; case CODA_REPLACE: fid = &out->coda_replace.OldFid; newfid = &out->coda_replace.NewFid; inode = coda_fid_to_inode(fid, sb); if (inode) coda_replace_fid(inode, fid, newfid); break; } case CODA_REPLACE : { struct inode *inode; struct CodaFid *oldfid = &out->coda_replace.OldFid; struct CodaFid *newfid = &out->coda_replace.NewFid; inode = coda_fid_to_inode(oldfid, sb); if ( inode ) { coda_replace_fid(inode, oldfid, newfid); if (inode) iput(inode); } return 0; } } return 0; } Loading
fs/coda/upcall.c +54 −65 Original line number Diff line number Diff line Loading @@ -859,52 +859,43 @@ static int coda_upcall(struct coda_sb_info *sbi, int coda_downcall(int opcode, union outputArgs * out, struct super_block *sb) { struct inode *inode = NULL; struct CodaFid *fid, *newfid; /* Handle invalidation requests. */ if ( !sb || !sb->s_root || !sb->s_root->d_inode) if ( !sb || !sb->s_root) return 0; switch (opcode) { case CODA_FLUSH : { case CODA_FLUSH: coda_cache_clear_all(sb); shrink_dcache_sb(sb); if (sb->s_root->d_inode) coda_flag_inode(sb->s_root->d_inode, C_FLUSH); return(0); } break; case CODA_PURGEUSER : { case CODA_PURGEUSER: coda_cache_clear_all(sb); return(0); } case CODA_ZAPDIR : { struct inode *inode; struct CodaFid *fid = &out->coda_zapdir.CodaFid; break; case CODA_ZAPDIR: fid = &out->coda_zapdir.CodaFid; inode = coda_fid_to_inode(fid, sb); if (inode) { coda_flag_inode_children(inode, C_PURGE); coda_flag_inode(inode, C_VATTR); iput(inode); } return(0); } break; case CODA_ZAPFILE : { struct inode *inode; struct CodaFid *fid = &out->coda_zapfile.CodaFid; case CODA_ZAPFILE: fid = &out->coda_zapfile.CodaFid; inode = coda_fid_to_inode(fid, sb); if ( inode ) { if (inode) coda_flag_inode(inode, C_VATTR); iput(inode); } return 0; } break; case CODA_PURGEFID : { struct inode *inode; struct CodaFid *fid = &out->coda_purgefid.CodaFid; case CODA_PURGEFID: fid = &out->coda_purgefid.CodaFid; inode = coda_fid_to_inode(fid, sb); if (inode) { coda_flag_inode_children(inode, C_PURGE); Loading @@ -913,23 +904,21 @@ int coda_downcall(int opcode, union outputArgs * out, struct super_block *sb) coda_flag_inode(inode, C_PURGE); d_prune_aliases(inode); iput(inode); } return 0; break; case CODA_REPLACE: fid = &out->coda_replace.OldFid; newfid = &out->coda_replace.NewFid; inode = coda_fid_to_inode(fid, sb); if (inode) coda_replace_fid(inode, fid, newfid); break; } case CODA_REPLACE : { struct inode *inode; struct CodaFid *oldfid = &out->coda_replace.OldFid; struct CodaFid *newfid = &out->coda_replace.NewFid; inode = coda_fid_to_inode(oldfid, sb); if ( inode ) { coda_replace_fid(inode, oldfid, newfid); if (inode) iput(inode); } return 0; } } return 0; }