getdents64 problem in 2.6.23

Joakim Tjernlund joakim.tjernlund at transmode.se
Thu Oct 25 17:36:51 EDT 2007


 

> -----Original Message-----
> From: linux-mtd-bounces at lists.infradead.org 
> [mailto:linux-mtd-bounces at lists.infradead.org] On Behalf Of 
> Joakim Tjernlund
> Sent: den 24 oktober 2007 15:48
> To: Linux-MTD Mailing List
> Subject: getdents64 problem in 2.6.23
> 
> started to use 2.6.23 in our development system a few days ago and
> now I got problems when deleting files from a large directory 
> structure.
> A rm -rf does not delete all files.
> 
> Did a strace and found that some files does not appear in the
> strace, the same ones that doesn't get deleted.
> 
> The files that remain are in two directories:
> 
> ./doc/images:
> enm_topleft.gif*
> h_10g.gif*
> h_cu.gif*
> h_cuSfp.gif*
> h_fpuym.gif*
> h_mdu4T2F.gif*
> h_mxp16.gif*
> h_oaMon.gif*
> h_oiu50.gif*
> h_qmr.gif*
> h_unexp_half.gif*
> saveHoover.gif*
> saveHooverWarn.gif*
> showNormal.gif*
> tab_sel.gif*
> top-bar.jpg*
> v_d10gbe.gif*
> v_empty.gif*
> v_gbemxp.gif*
> v_mdu40.gif*
> v_mdu4E.gif*
> v_mdu4T.gif*
> v_mdu8E.gif*
> v_mdu8T.gif*
> v_oa2Mon.gif*
> v_sync.gif*
> v_unexp.gif*
> v_voa.gif*
> wizard_logo.gif*
> 
> ./lib:
> liblum_mib_help_text_if.so.1@
> libmgmt_mibserver_if.so.1@
> libtsiif.so.1.0.0
> 
> looking at the strace a bit futher reveals:
> 
> open("cuappl02a-r10a-071024_yyy/doc/images", O_RDONLY|O_NONBLOCK|
> O_LARGEFILE|O_DIRECTORY) = 5
> fstat64(5, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
> fcntl64(5, F_SETFD, FD_CLOEXEC)         = 0
> getdents64(5, /* 119 entries */, 4096)  = 4064
> lstat64("cuappl02a-r10a-071024_yyy/doc/images/v_roadm.gif",
> {st_mode=S_IFREG|0755, st_size=2717, ...}) = 0
> unlink("cuappl02a-r10a-071024_yyy/doc/images/v_roadm.gif") = 0
> lstat64("cuappl02a-r10a-071024_yyy/doc/images/h_du.gif",
> {st_mode=S_IFREG|0755, st_size=1632, ...}) = 0
> unlink("cuappl02a-r10a-071024_yyy/doc/images/h_du.gif") = 0
> ....
> getdents64(5, /* 0 entries */, 4096)    = 0
> close(5)                                = 0
> 
> Notice the last getdents64 returning 0, I think this is wrong as there
> is more the 119 files in this directory.
> 
>  Jocke

David, could you comment? I need some advice on how to proceed.

 Jocke




More information about the linux-mtd mailing list