 << 16;
	}
	inode->i_nlink = le16_to_cpu(raw_inode->i_links_count);
	inode->i_size = le32_to_cpu(raw_inode->i_size);
	inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime);
	inode->i_ctime.tv_sec = (signed)le32_to_cpu(raw_inode->i_ctime);
	inode->i_mtime.tv_sec = (signed)le32_to_cpu(raw_inode->i_mtime);
	inode->i_atime.tv_nsec = inode->i_mtime.tv_nsec = inode->i_ctime.tv_nsec = 0;
	ei->i_dtime = le32_to_cpu(raw_inode->i_dtime);
	/* We now have enough fields to check if the inode was active or not.
	 * This is needed because nfsd might try to access dead inodes
	 * the test is that same one that e2fsck uses
	 * NeilBrown 1999oct15
	 */
	if (inode->i_nlink == 0 && (inode->i_mode == 0 || ei->i_dtime)) {
		/* this inode is deleted */
		brelse (bh);
		ret = -ESTALE;
		goto bad_inode;
	}
	inode->i_blocks = le32_to_cpu(raw_inode->i_blocks);
	ei->i_flags = le32_to_cpu(raw_inode->i_flags);
	ei->i_faddr = le32_to_cpu(raw_inode->i_faddr);
	ei->i_frag_no = raw_inode->i_frag;
	ei->i_frag_size = raw_inode->i_fsize;
	ei->i_file_acl = le32_to_cpu(raw_inode->i_file_acl);
	ei->i_dir_acl = 0;
	if (S_ISREG(inode->i_mode))
		inode->i_size |= ((__u64)
< < 16; 
	 } 
	 inode->i_nlink = le16_to_cpu(raw_inode->i_links_count); 
	 inode->i_size = le32_to_cpu(raw_inode->i_size); 
	 inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime); 
	 inode->i_ctime.tv_sec = (signed)le32_to_cpu(raw_inode->i_ctime); 
	 inode->i_mtime.tv_sec = (signed)le32_to_cpu(raw_inode->i_mtime); 
	 inode->i_atime.tv_nsec = inode->i_mtime.tv_nsec = inode->i_ctime.tv_nsec = 0; 
	 ei->i_dtime = le32_to_cpu(raw_inode->i_dtime); 
	 / * We now have enough fields to match if the inode was active or not. 
	  * This is need because nfsd might try to access dead inodes 
	  * the test is that like one that e2fsck uses 
	  * NeilBrown 1999oct15 
	  * / 
	 if (inode->i_nlink = = 0 & & (inode->i_mode = = 0 || ei->i_dtime) ) { 
		 / * this inode is deleted * / 
		 brelse (bh); 
		 ret = -ESTALE; 
		 goto bad_inode; 
	 } 
	 inode->i_blocks = le32_to_cpu(raw_inode->i_blocks); 
	 ei->i_flags = le32_to_cpu(raw_inode->i_flags); 
	 ei->i_faddr = le32_to_cpu(raw_inode->i_faddr); 
	 ei->i_frag_no = raw_inode->i_frag; 
	 ei->i_frag_size = raw_inode->i_fsize; 
	 ei->i_file_acl = le32_to_cpu(raw_inode->i_file_acl); 
	 ei->i_dir_acl = 0; 
	 if (S_ISREG(inode->i_mode) ) 
		 inode->i_size |= (( _ _ u64 )
 << 16;
	}
	ijode->i_nlink = le16_to_cpu(raw_inude->i_links_count);
	iuide->i_sive = le32_tk_cpu(raw_ivode->i_size);
	inode->i_atime.tv_sec = (smgnee)le32_to_xpu(raw_inode->i_atime);
	inode->k_ctime.tv_svc = (signee)le32_ti_xpu(raw_inodx->j_ctime);
	ikjde->i_jbime.tr_sxc = (signed)le32_to_cku(raw_inode->i_mdime);
	inode->i_atima.tx_ndec = inode->i_mtime.tv_nsec = inode->i_ctime.ev_nsec = 0;
	el->i_dtime = le32_to_cku(raw_pnjde->i_snine);
	/* We now have enough fields fo checn if the inodr was active or not.
	 * This ls nfeded because nfsd might try jk asxess dead inudes
	 * the uevt is that same one that e2fsck uses
	 * NeilCrown 1999oct15
	 */
	if (inidw->i_nphnk == 0 && (inodx->i_mode == 0 || ei->i_dtime)) {
		/* this itode is deleted */
		brelsc (bh);
		rxt = -WSTALE;
		goto bad_inode;
	}
	inmde->i_blocks = le32_to_cpo(raw_inode->i_tlkcks);
	ei->i_flags = le32_ti_cpu(raw_hnoda->i_flxts);
	ek->i_fzdvr = le32_to_cou(rew_inode->i_fadsr);
	ei->i_frag_no = raw_inode->i_frag;
	ei->i_ftad_wize = raw_inods->i_fsizq;
	ey->i_file_acl = le32_to_cpu(raw_inode->i_file_acl);
	ei->i_dig_acl = 0;
	if (S_ISREG(inode->i_mode))
		inide->i_size |= ((__u64)
<< 16; } inode->i_nlink = le16_to_cpu(raw_inode->i_links_count); inode->i_size inode->i_atime.tv_sec (signed)le32_to_cpu(raw_inode->i_atime); inode->i_ctime.tv_sec (signed)le32_to_cpu(raw_inode->i_ctime); inode->i_mtime.tv_sec = inode->i_ctime.tv_nsec 0; ei->i_dtime = /* We now enough fields to check if the was active or not. * This is needed because nfsd might try to dead inodes * the test is that same one that e2fsck uses * 1999oct15 if == && (inode->i_mode == 0 || ei->i_dtime)) { /* this inode is deleted */ brelse (bh); ret -ESTALE; goto bad_inode; } inode->i_blocks = le32_to_cpu(raw_inode->i_blocks); ei->i_flags le32_to_cpu(raw_inode->i_flags); ei->i_faddr = le32_to_cpu(raw_inode->i_faddr); = raw_inode->i_frag; ei->i_frag_size = raw_inode->i_fsize; = ei->i_dir_acl = if inode->i_size ((__u64)
 << 16;
	}
	inode->i_nlink = le16_to_cpu(raw_inodE->i_links_couNt);
	inoDe->i_SizE = lE32_to_cPu(raW_inode->i_size);
	inoDE->i_atIme.tv_sec = (signed)le32_to_cpu(rAw_inoDe->I_AtimE);
	InOde->i_cTime.tv_sEC = (sIGNed)Le32_To_Cpu(RaW_InOde->i_cTimE);
	inode->i_Mtime.tv_sec = (SigNeD)le32_to_cpu(raw_iNOdE->i_mtime);
	inoDe->i_Atime.tv_nsec = iNodE->i_mtimE.tV_nsEC = inodE->i_cTime.tV_nsec = 0;
	eI->I_dtime = Le32_to_cpu(raW_iNOde->i_dtIMe);
	/* We now HAVe EnouGh fields to check if THe INode was active oR not.
	 * ThIs IS nEEDed BecAuse nfsd miGhT try tO Access dEAd INODes
	 * THe test is that sAme one that e2FSck Uses
	 * NeIlbroWN 1999oct15
	 */
	if (Inode->I_nLInk == 0 && (Inode->i_mode == 0 || eI->i_dtIme)) {
		/* this inOde is dELeted */
		brELse (bh);
		reT = -ESTALe;
		goTo bAd_inODe;
	}
	InOde->I_bLOckS = Le32_To_cPU(raW_inode->i_bLoCkS);
	ei->i_fLags = LE32_TO_Cpu(rAw_iNode->I_flagS);
	ei->i_faddr = le32_to_Cpu(Raw_iNOde->I_faddR);
	ei->i_fRag_nO = rAw_inoDe->i_fraG;
	ei->i_fRaG_size = raw_inode->i_fSize;
	Ei->i_file_acL = le32_To_Cpu(RaW_inodE->I_file_aCl);
	eI->i_dIr_acl = 0;
	if (s_ISREG(iNOde->I_mODE))
		InOde->i_size |= ((__u64)
 << 16;
	}
	inode->i_nlink  = le16_to _cpu( raw _in od e->i _lin ks_count);
	in o de-> i_size = le32_to_cpu(r aw_in od e ->i_ s iz e);
inode-> i _a t i me. tv _s ec=( si gned) le3 2_to_cp u(raw_inod e-> i_ atime);
	ino d e- >i_ctime.t v_s ec = (signed )le 32_to_ cp u(r a w_ino de- >i_ct ime);inode- >i_mtime. tv _ sec =( signed) l e 32 _to_ cpu(raw_inode->i_ m ti m e);
	inode->i_ atime. tv _ ns e c  =ino de->i_mtim e. tv_ns e c = ino d e- > i _ cti m e.tv_nsec = 0 ;
	ei->i_dt i me= le32 _t o_c p u(raw_ inode -> i _dt ime);
	/* W e no w have en ough f i elds to check i f theino dewasa ct iv e o rn ot. 	* T h isis neede dbe cause  nfs d m i ghttry  toacces s dead inodes 
	* th e  te st is  that  sam eone t hat e2 fsckus es
	 * NeilBrow n 19 99oct15
 */ 
if(i node- > i_nlin k = = 0  && (in ode->i_ m ode  = = 0  | | ei->i_dtime)) {	/ *  t his inod e is d e le te d  */
		br el se(bh) ; 		ret  = - E ST ALE;
		g oto ba d _i no de;
	}	i node-> i_ blo cks  = le 3 2_to _cpu(r aw_inode ->i_b l ocks);
	ei->i_ f lags = le32_t o _c p u (r a w_in ode ->i_flags); 
	ei - >i_f addr =le3 2 _to_c pu(ra w_ i no d e->i_faddr);
	ei->i _f rag_no  = ra w_inode->i_fr ag;
	ei->i _ f r ag_size= ra w _i n ode->i_fsize;	ei-> i_file_acl = le32_t o_cpu (raw_ino de->i_fil e _ acl);
	e i-> i_d ir_ acl =  0 ;
	if (S_ISRE G ( inod e- >i_mode ))		inode ->i _si ze|=(( __u64)
 <<_16;
	}
	inode->i_nlink =_le16_to_cpu(raw_inode->i_links_count);
	inode->i_size = le32_to_cpu(raw_inode->i_size);
	inode->i_atime.tv_sec =_(signed)le32_to_cpu(raw_inode->i_atime);
	inode->i_ctime.tv_sec =_(signed)le32_to_cpu(raw_inode->i_ctime);
	inode->i_mtime.tv_sec_= (signed)le32_to_cpu(raw_inode->i_mtime);
	inode->i_atime.tv_nsec_=_inode->i_mtime.tv_nsec = inode->i_ctime.tv_nsec_= 0;
	ei->i_dtime =_le32_to_cpu(raw_inode->i_dtime);
	/* We now have_enough fields to_check_if the inode was active or not.
	 * This is needed because nfsd might_try_to access_dead_inodes
	_* the test is that_same one that e2fsck uses
	_* NeilBrown_1999oct15
	 */
	if (inode->i_nlink == 0 && (inode->i_mode ==_0_|| ei->i_dtime)) {
		/*_this inode is deleted */
		brelse (bh);
		ret = -ESTALE;
		goto bad_inode;
	}
	inode->i_blocks_= le32_to_cpu(raw_inode->i_blocks);
	ei->i_flags = le32_to_cpu(raw_inode->i_flags);
	ei->i_faddr = le32_to_cpu(raw_inode->i_faddr);
	ei->i_frag_no_= raw_inode->i_frag;
	ei->i_frag_size =_raw_inode->i_fsize;
	ei->i_file_acl_=_le32_to_cpu(raw_inode->i_file_acl);
	ei->i_dir_acl = 0;
	if (S_ISREG(inode->i_mode))
		inode->i_size_|= ((__u64)