+
+ now = jiffies;
+
+ if(time_after(now, next_dir_update) &&
+ !dev->isCheckpointed){
+ yaffs_UpdateDirtyDirectories(dev);
+ next_dir_update = now + HZ;
+ }
+
+ if(time_after(now,next_gc) &&
+ ! dev->isCheckpointed){
+ gcResult = yaffs_BackgroundGarbageCollect(dev);
+ urgency = yaffs_bg_gc_urgency(dev);
+ if(urgency > 1)
+ next_gc = now + HZ/50+1;
+ else if(urgency > 0)
+ next_gc = now + HZ/20+1;
+ else
+ next_gc = now + HZ * 2;
+ }