summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ocfs2: Add ->set_lvb callback in dlmglueMark Fasheh2006-09-241-2/+29
| | | | | | This allows a lock type to set the value block before downconvert. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Add ->check_downconvert callback in dlmglueMark Fasheh2006-09-241-1/+18
| | | | | | This will allow lock types to force a requeue of a lock downconvert. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Check for refreshing locks in generic unblock functionMark Fasheh2006-09-241-12/+19
| | | | | | Tidy up the exit path a bit too. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: don't unconditionally pass LVB flagsMark Fasheh2006-09-241-3/+15
| | | | | | | | | Allow a lock type to specifiy whether it makes use of the LVB. The only type which does this right now is the meta data lock. This should save us some space on network messages since they won't have to needlessly transmit value blocks. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: combine inode and generic blocking AST functionsMark Fasheh2006-09-241-112/+11
| | | | | | | There is extremely little difference between the two now. We can remove the callback from ocfs2_lock_res_ops as well. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Add ->get_osb() dlmglue locking operationMark Fasheh2006-09-241-0/+33
| | | | | | Will be used to find the ocfs2_super structure from a given lockres. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: remove ->unlock_ast() callback from ocfs2_lock_res_opsMark Fasheh2006-09-241-13/+3
| | | | | | | This was always defined to the same function in all locks, so clean things up by removing and passing ocfs2_unlock_ast() directly to the DLM. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: combine inode and generic AST functionsMark Fasheh2006-09-241-110/+10
| | | | | | | There is extremely little difference between the two now. We can remove the callback from ocfs2_lock_res_ops as well. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Clean up lock resource refresh flagsMark Fasheh2006-09-241-14/+35
| | | | | | | Use of the refresh mechanism is lock-type wide, so move knowledge of that to the ocfs2_lock_res_ops structure. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Remove i_generation from inode lock namesMark Fasheh2006-09-2410-53/+170
| | | | | | | | | | | | | | | | | | | | | | | OCFS2 puts inode meta data in the "lock value block" provided by the DLM. Typically, i_generation is encoded in the lock name so that a deleted inode on and a new one in the same block don't share the same lvb. Unfortunately, that scheme means that the read in ocfs2_read_locked_inode() is potentially thrown away as soon as the meta data lock is taken - we cannot encode the lock name without first knowing i_generation, which requires a disk read. This patch encodes i_generation in the inode meta data lvb, and removes the value from the inode meta data lock name. This way, the read can be covered by a lock, and at the same time we can distinguish between an up to date and a stale LVB. This will help cold-cache stat(2) performance in particular. Since this patch changes the protocol version, we take the opportunity to do a minor re-organization of two of the LVB fields. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Encode i_generation in the meta data lvbMark Fasheh2006-09-242-7/+12
| | | | | | | | When i_generation is removed from the lockname, this will help us determine whether a meta data lvb has information that is in sync with the local struct inode. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Free up some space in the lvbMark Fasheh2006-09-242-4/+6
| | | | | | | | lvb_version doesn't need to be a whole 32 bits. Make it an 8 bit field to free up some space. This should be backwards compatible until we use one of the fields, in which case we'd bump the lvb version anyway. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Remove special casing for inode creation in ocfs2_dentry_attach_lock()Mark Fasheh2006-09-243-37/+14
| | | | | | | | We can't use LKM_LOCAL for new dentry locks because an unlink and subsequent re-create of a name/inode pair may result in the lock still being mastered somewhere in the cluster. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: manually d_move() during ocfs2_rename()Mark Fasheh2006-09-242-2/+5
| | | | | | | | | | Make use of FS_RENAME_DOES_D_MOVE to avoid a race condition that can occur during ->rename() if we d_move() outside of the parent directory cluster locks, and another node discovers the new name (created during the rename) and unlinks it. d_move() will unconditionally rehash a dentry - which will leave stale data in the system. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* [PATCH] Allow file systems to manually d_move() inside of ->rename()Mark Fasheh2006-09-244-13/+13
| | | | | | | | | | | | | | | | Some file systems want to manually d_move() the dentries involved in a rename. We can do this by making use of the FS_ODD_RENAME flag if we just have nfs_rename() unconditionally do the d_move(). While there, we rename the flag to be more descriptive. OCFS2 uses this to protect that part of the rename operation with a cluster lock. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@osdl.org>
* ocfs2: Remove the dentry voteMark Fasheh2006-09-242-183/+2
| | | | | | This is unused now. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Hook rest of the file system into dentry locking APIMark Fasheh2006-09-244-41/+94
| | | | | | | Actually replace the vote calls with the new dentry operations. Make any necessary adjustments to get the scheme to work. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Add dentry tracking APIMark Fasheh2006-09-243-32/+369
| | | | | | | | | | | | | | | | | Replace the dentry vote mechanism with a cluster lock which covers a set of dentries. This allows us to force d_delete() only on nodes which actually care about an unlink. Every node that does a ->lookup() gets a read only lock on the dentry, until an unlink during which the unlinking node, will request an exclusive lock, forcing the other nodes who care about that dentry to d_delete() it. The effect is that we retain a very lightweight ->d_revalidate(), and at the same time get to make large improvements to the average case performance of the ocfs2 unlink and rename operations. This patch adds the higher level API and the dentry manipulation code. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Add new cluster lock typeMark Fasheh2006-09-245-104/+436
| | | | | | | | | | | | | | | | | | | Replace the dentry vote mechanism with a cluster lock which covers a set of dentries. This allows us to force d_delete() only on nodes which actually care about an unlink. Every node that does a ->lookup() gets a read only lock on the dentry, until an unlink during which the unlinking node, will request an exclusive lock, forcing the other nodes who care about that dentry to d_delete() it. The effect is that we retain a very lightweight ->d_revalidate(), and at the same time get to make large improvements to the average case performance of the ocfs2 unlink and rename operations. This patch adds the cluster lock type which OCFS2 can attach to dentries. A small number of fs/ocfs2/dcache.c functions are stubbed out so that this change can compile. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Update dlmglue for new dlmlock() APIMark Fasheh2006-09-241-0/+3
| | | | | | | File system lock names are very regular right now, so we really only need to pass an extra parameter to dlmlock(). Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Update dlmfs for new dlmlock() APIMark Fasheh2006-09-242-51/+31
| | | | | | | | We just need to add a namelen field to the user_lock_res structure, and update a few debug prints. Instead of updating all debug prints, I took the opportunity to remove a few that are likely unnecessary these days. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Allow binary names in the DLMMark Fasheh2006-09-245-8/+11
| | | | | | | | The OCFS2 DLM uses strlen() to determine lock name length, which excludes the possibility of putting binary values in the name string. Fix this by requiring that string length be passed in as a parameter. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Silence dlm error printMark Fasheh2006-09-241-3/+3
| | | | | | | An AST can be delivered via the network after a lock has been removed, so no need to print an error when we see that. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* Merge branch 'upstream-linus' of ↵Linus Torvalds2006-09-2477-1275/+19846
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: (50 commits) [libata] Delete pata_it8172 driver [PATCH] libata: improve handling of diagostic fail (and hardware that misreports it) [PATCH] libata: fix non-uniform ports handling Fix libata resource conflict for legacy mode [libata] ata_piix: build fix [PATCH] pata_amd: Check enable bits on Nvidia [PATCH] Update SiS PATA [libata] Add pata_jmicron driver to Kconfig, Makefile [libata #pata-drivers] Trim trailing whitespace. [libata] Trim trailing whitespace. [libata] Add a bunch of PATA drivers. Rename libata-bmdma.c to libata-sff.c. libata: Grand renaming. Clean up drivers/ata/Kconfig a bit. [PATCH] CONFIG_PM=n slim: drivers/scsi/sata_sil* [PATCH] sata_via: Add SATA support for vt8237a [PATCH] libata: change path to libata in libata.tmpl [PATCH] libata: s/CONFIG_SCSI_SATA/CONFIG_[S]ATA/g in pci/quirks.c libata: Make sure drivers/ata is a separate Kconfig menu [libata] ata_piix: add missing kfree() ...
| * Merge branch 'master' into upstreamJeff Garzik2006-09-241430-35271/+111297
| |\
| * | [libata] Delete pata_it8172 driverJeff Garzik2006-09-203-298/+0
| | | | | | | | | | | | | | | | | | | | | This MIPS platform is going away. Acked-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | [PATCH] libata: improve handling of diagostic fail (and hardware that ↵Alan Cox2006-09-192-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | misreports it) Our ATA probe code checks that a device is not reporting a diagnostic failure during start up. Unfortunately at least one device seems to like doing this - the Gigabyte iRAM. This is only done for the master right now (which is fine for the iRAM as it is SATA), as with PATA some combinations of ATAPI device seem to fool the check into seeing a drive that isn't there if it is applied to the slave. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | Merge branch 'master' into upstreamJeff Garzik2006-09-19127-1684/+2295
| |\ \
| * | | [PATCH] libata: fix non-uniform ports handlingTejun Heo2006-09-193-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Non-uniform ports handling got broken while updating libata to handle those in the same host. Only separate irq for the non-uniform secondary port was implemented while all other fields (host flags, transfer mode...) of the secondary port simply shared those of the first. For ata_piix combined mode, which ATM is the only user of non-uniform ports, this causes the secondary port assume the wrong type. This can cause PATA port to use SATA ops, which results in bogus check on PCS and detection failure. This patch adds ata_probe_ent->pinfo2 which points to optional port_info for the secondary port. For the time being, this seems to be the simplest solution. This workaround will be removed together with ata_probe_ent itself after init model is updated to allow more flexibility. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Nelson A. de Oliveira <naoliv@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | Merge branch 'tmp' into upstreamJeff Garzik2006-09-191-2/+12
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/ata/libata-sff.c
| | * | | Fix libata resource conflict for legacy modeArnaud Patard2006-09-191-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the libata is trying to handle legacy ide ports (0x1f0 for instance), it doesn't take care if the resource has childs or not. The result is that this situation : 0100-01fe : pnp 00:09 0170-0177 : libata 01f0-01f7 : libata is seen as conflict, which is wrong. The proposed fix is to detect childs and in this case, look at which child is conflicting. Signed-off-by: Arnaud Patard <apatard@mandriva.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | | Merge branch 'master' into upstreamJeff Garzik2006-09-1355-149/+352
| |\ \ \ \ | | |/ / /
| * | | | [libata] ata_piix: build fixJeff Garzik2006-09-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Spotted by Andrew Morton. Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | | Merge branch 'master' into upstreamJeff Garzik2006-09-12131-790/+988
| |\ \ \ \
| * | | | | [PATCH] pata_amd: Check enable bits on NvidiaAlan Cox2006-09-121-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A couple of people reported long delays on probe with the newer kernels and Nvidia PATA. This turned out to be because the Nvidia path forgot to check the enable bits so probed empty ports. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | | | [PATCH] Update SiS PATAAlan Cox2006-09-121-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New chipset identifiers Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | | | Merge branch 'upstream-fixes' into upstreamJeff Garzik2006-09-112-6/+37
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/ata/ata_piix.c
| * | | | | | [libata] Add pata_jmicron driver to Kconfig, MakefileJeff Garzik2006-09-062-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Someone on LKML noticed it was missing (sorry, missed the name). Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | | | | Merge branch 'upstream' into pata-driversJeff Garzik2006-09-04184-1683/+4071
| |\ \ \ \ \ \
| | * \ \ \ \ \ Merge branch 'master' into upstreamJeff Garzik2006-09-04184-1683/+4071
| | |\ \ \ \ \ \
| * | | | | | | | [libata #pata-drivers] Trim trailing whitespace.Jeff Garzik2006-08-3125-456/+456
| | | | | | | | |
| * | | | | | | | Merge branch 'upstream' into pata-driversJeff Garzik2006-08-314-5/+5
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| | * | | | | | | [libata] Trim trailing whitespace.Jeff Garzik2006-08-314-5/+5
| | | | | | | | |
| * | | | | | | | [libata] Add a bunch of PATA drivers.Jeff Garzik2006-08-2943-111/+18372
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The vast majority of drivers and changes are from Alan Cox. Albert Lee contributed and maintains pata_pdc2027x. Adrian Bunk, Andrew Morton, and Tejun Heo contributed various minor fixes and updates. Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | | | | | Merge /spare/repo/linux-2.6 into upstreamJeff Garzik2006-08-29300-4956/+14311
| |\ \ \ \ \ \ \
| * | | | | | | | Rename libata-bmdma.c to libata-sff.c.Jeff Garzik2006-08-242-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | | | | | | libata: Grand renaming.Jeff Garzik2006-08-2421-573/+568
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The biggest change is that ata_host_set is renamed to ata_host. * ata_host_set => ata_host * ata_probe_ent->host_flags => ata_probe_ent->port_flags * ata_probe_ent->host_set_flags => ata_probe_ent->_host_flags * ata_host_stats => ata_port_stats * ata_port->host => ata_port->scsi_host * ata_port->host_set => ata_port->host * ata_port_info->host_flags => ata_port_info->flags * ata_(.*)host_set(.*)\(\) => ata_\1host\2() The leading underscore in ata_probe_ent->_host_flags is to avoid reusing ->host_flags for different purpose. Currently, the only user of the field is libata-bmdma.c and probe_ent itself is scheduled to be removed. ata_port->host is reused for different purpose but this field is used inside libata core proper and of different type. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | | | | | | Merge branch 'upstream-fixes' into upstreamJeff Garzik2006-08-242-7/+134
| |\ \ \ \ \ \ \ \
| * | | | | | | | | Clean up drivers/ata/Kconfig a bit.Jeff Garzik2006-08-241-17/+19
| | | | | | | | | |
| * | | | | | | | | [PATCH] CONFIG_PM=n slim: drivers/scsi/sata_sil*Alexey Dobriyan2006-08-242-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove some code which is unneeded if CONFIG_PM=n. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
OpenPOWER on IntegriCloud