Commit ecfcc06e authored by Linus Torvalds's avatar Linus Torvalds

Import 2.1.49

parent 6f3ded5f
This diff is collapsed.
......@@ -31,6 +31,18 @@
#endif
/*
FlashPoint support is only available for the Intel x86 Architecture.
*/
#ifndef __i386__
#undef CONFIG_SCSI_OMIT_FLASHPOINT
#define CONFIG_SCSI_OMIT_FLASHPOINT
#endif
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT
......@@ -495,7 +507,7 @@ typedef struct SCCBMgr_info {
#define SCSI_PARITY_ENA 0x0001
#define LOW_BYTE_TERM 0x0010
#define HIGH_BYTE_TERM 0x0020
#define _BUSTYPE_PCI 0x3
#define BUSTYPE_PCI 0x3
#endif
#define SUPPORT_16TAR_32LUN 0x0002
......@@ -2590,7 +2602,7 @@ int SccbMgr_sense_adapter(PSCCBMGR_INFO pCardInfo)
pCardInfo->si_flags |= SUPPORT_16TAR_32LUN;
pCardInfo->si_card_family = HARPOON_FAMILY;
pCardInfo->si_bustype = _BUSTYPE_PCI;
pCardInfo->si_bustype = BUSTYPE_PCI;
if(pCurrNvRam){
pCardInfo->si_card_model[0] = '9';
......@@ -3193,7 +3205,7 @@ STATIC s32bits probe_adapter(PADAPTER_INFO pAdapterInfo)
}
pAdapterInfo->ai_product_family = HARPOON_FAMILY;
pAdapterInfo->ai_HBAbustype = _BUSTYPE_PCI;
pAdapterInfo->ai_HBAbustype = BUSTYPE_PCI;
for (i=0;i<CARD_MODEL_NAMELEN;i++)
{
......
BusLogic MultiMaster and FlashPoint SCSI Driver for Linux
Version 2.0.9 for Linux 2.0
Version 2.0.10 for Linux 2.0
PRODUCTION RELEASE
29 March 1997
11 August 1997
Leonard N. Zubkoff
Dandelion Digital
......@@ -284,6 +284,14 @@ o PCI Slot Scanning Order
so as to recognize the host adapters in the same order as they are enumerated
by the host adapter's BIOS.
o Mega-Transfers/Second
The driver reports on the synchronous transfer parameters negotiated between
the host adapter and target devices in units of "mega-transfers/second". For
wide devices, the unit of transfer is 16 bits if wide negotiation has been
successfully completed. Therefore, the total transfer rate to wide devices
will generally be twice the synchronous tranfer rate reported by the driver.
COMMAND LINE OPTIONS
......@@ -372,16 +380,17 @@ substantially impact performance.
INSTALLATION
This distribution was prepared for Linux kernel version 2.0.29, but should be
compatible with 2.0.4 or any later 2.0 series kernel.
This distribution was prepared for Linux kernel version 2.0.30, but should be
compatible with 2.0.4 or any later 2.0 series kernel if BusLogic.patch is also
applied.
To install the new BusLogic SCSI driver, you may use the following commands,
replacing "/usr/src" with wherever you keep your Linux kernel source tree:
cd /usr/src
tar -xvzf BusLogic-2.0.9.tar.gz
tar -xvzf BusLogic-2.0.10.tar.gz
mv README.* LICENSE.* BusLogic.[ch] FlashPoint.c linux/drivers/scsi
patch -p < BusLogic.patch
patch -p < BusLogic.patch # Only for kernels prior to 2.0.30
cd linux
make config
make depend
......
/*
* fs/dcache.c
*
......@@ -92,6 +91,25 @@ void dput(struct dentry *dentry)
}
}
/*
* Try to invalidate the dentry if it turns out to be
* possible. If there are other users of the dentry we
* can't invalidate it.
*
* This is currently incorrect. We should try to see if
* we can invalidate any unused children - right now we
* refuse to invalidate way too much.
*/
int d_invalidate(struct dentry * dentry)
{
/* We should do a partial shrink_dcache here */
if (dentry->d_count != 1)
return -EBUSY;
d_drop(dentry);
return 0;
}
/*
* Shrink the dcache. This is done when we need
* more memory, or simply when we need to unmount
......@@ -366,6 +384,11 @@ char * d_path(struct dentry *dentry, char *buffer, int buflen)
*--end = '\0';
buflen--;
if (dentry->d_parent != dentry && list_empty(&dentry->d_hash)) {
buflen -= 10;
end -= 10;
memcpy(end, " (deleted)", 10);
}
/* Get '/' right */
retval = end-1;
......
......@@ -270,16 +270,12 @@ static struct dentry * cached_lookup(struct dentry * parent, struct qstr * name)
if (dentry && dentry->d_revalidate) {
int validated, (*revalidate)(struct dentry *) = dentry->d_revalidate;
struct dentry * save;
dentry->d_count++;
validated = revalidate(dentry);
save = dentry;
if (!validated) {
d_drop(dentry);
validated = revalidate(dentry) || d_invalidate(dentry);
dput(dentry);
if (!validated)
dentry = NULL;
}
dput(save);
}
return dentry;
}
......
......@@ -1118,7 +1118,6 @@ __initfunc(static int do_change_root(kdev_t new_root_dev,const char *put_old))
dput(dir_d);
error = -ENOTDIR;
}
dput(old_root);
dput(old_pwd);
if (error) {
int umount_error;
......
......@@ -81,11 +81,11 @@ static inline void d_drop(struct dentry * dentry)
extern void d_instantiate(struct dentry *, struct inode *);
extern void d_delete(struct dentry *);
/* allocate/de-allocate */
extern void d_free(struct dentry *);
extern struct dentry * d_alloc(struct dentry * parent, const struct qstr *name);
extern void shrink_dcache(void);
extern int d_invalidate(struct dentry *);
/* only used at mount-time */
extern struct dentry * d_alloc_root(struct inode * root_inode, struct dentry * old_root);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment