[squid-users] understand reiserfs raw

From: Alexander Trotsai <mage@dont-contact.us>
Date: Thu, 17 May 2001 10:55:28 +0300

Hello

Can somene help me understand reiserfs patch

1. Patch apply
I took latest stable cvs squid and try apply patch
All files successful except store_dir.c

here reject:
***************
*** 144,151 ****
        sd = &Config.cacheSwap.swapDirs[dirn];
        if (sd->cur_size > sd->max_size)
            continue;
- return dirn;
      }
      return dirn;
  }
                                                                                                         
--- 144,160 ----
        sd = &Config.cacheSwap.swapDirs[dirn];
        if (sd->cur_size > sd->max_size)
            continue;
+ break;
      }
+ #ifdef USE_STORETREE
+ /* Give storedir a chance to redirect this object to another dir.
+ STORETREE dirs use that as all storetree dirs you configure
+ act together like hash buckets. They use a hash based on URL
+ to select which dir the object should go to -- this allows to
+ have only one open() in storeTreeGet(). */
+ if (sd->reselectdir)
+ dirn = sd->reselectdir(e)->index;
+ #endif
      return dirn;
  }

May correct result look like this
static int
storeDirSelectSwapDirRoundRobin(const StoreEntry * e)
{
    static int dirn = 0;
    int i;
    int load;
    SwapDir *sd;
    ssize_t objsize = (ssize_t) objectLen(e);
    for (i = 0; i <= Config.cacheSwap.n_configured; i++) {
        if (++dirn >= Config.cacheSwap.n_configured)
            dirn = 0;
        sd = &Config.cacheSwap.swapDirs[dirn];
        if (sd->flags.read_only)
            continue;
        if (sd->cur_size > sd->max_size)
            continue;
        if (!storeDirValidSwapDirSize(i, objsize))
            continue;
        /* check for error or overload condition */
        load = sd->checkobj(sd, e);
        if (load < 0 || load > 1000) {
            continue;
        }
 #ifdef USE_STORETREE
      /* Give storedir a chance to redirect this object to another dir.
         STORETREE dirs use that as all storetree dirs you configure
         act together like hash buckets. They use a hash based on URL
         to select which dir the object should go to -- this allows to
         have only one open() in storeTreeGet(). */
      if (sd->reselectdir)
         dirn = sd->reselectdir(e)->index;
 #endif
        return dirn;
    }
    return -1;
}

but I'm not sure. Is this correct

2. Does squid spool must be mounted or squid work with raw device?

3. How I must describe such spool in squid.conf? Can someone get me example
(with async io)?

-- 
UaNic: MAGE1-UANIC, RIPE: MAGE-RIPE, InterNic: AT2963, ICQ: 18035130
PGP: ftp://blackhole.adamant.net/pgp/mykey.pgp.asc
Trouble of the day: IRQ dropout
Received on Thu May 17 2001 - 01:54:25 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 17:00:09 MST