- 24 7月, 2013 40 次提交
-
-
由 Joe Perches 提交于
Remove unnecessary debug logs. Most of these logs print function name at the start of function, which are not really required. Signed-off-by: NJoe Perches <joe@perches.com> Signed-off-by: NRupesh Gujare <rupesh.gujare@atmel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
After migrating ISA DMA support from the "ni_labpc" module to the new "ni_labpc_isadma" module, the `COMEDI_NI_LABPC_ISA` configuration option no longer depends on `VIRT_TO_BUS`, so remove the dependency. (The new `COMEDI_NI_LABPC_ISADMA` option does depend on `VIRT_TO_BUS` but is not configured manually and is only selected automatically if the `VIRT_TO_BUS` and `ISA_DMA_API` options are set.) Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
After migrating the ISA DMA handling code to the "ni_labpc_isadma" module, get rid of an unneeded `#include` and a couple of unused static variables. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
Migrate the code for checking and handling the interrupt status handling for ISA DMA transfers into new a new function `labpc_handle_dma_status()` in the "ni_labpc_isadma" module. Provide a dummy inline function in "ni_labpc_isadma.h" if the "ni_labpc_isadma" module is not being built. The static function `handle_isa_dma()` also needs to move across to the new module. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
Move `labpc_drain_dma()` into the "ni_labpc_isadma" module. Provide a dummy inline function in "ni_labpc_isadma.h" if the module is not being built. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
Migrate the code for setting up an ISA DMA transfer into a new function `labpc_setup_dma()` in the "ni_labpc_isadma" module. Provide a dummy inline function in "ni_labpc_isadma.h" if the "ni_labpc_isadma" module is not being built. The static function `labpc_suggest_transfer_size()` also needs to move across to the new module. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
The new "ni_labpc_isadma" module will need to access some register definitions from "ni_labpc.c", which is not part of the module's source. Move all the register definitions into a new, common header file "ni_labpc_regs.h". Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
Call the new static inline function `labpc_have_dma_chan()` from `labpc_ai_cmd()` to check if the ISA DMA channel has been initialized, tidying up the surrounding code and removing an `#ifdef`. If the "ni_labpc_isadma" module is not being built, `labpc_have_dma_chan()` doesn't bother checking the DMA channel and just returns `false`, allowing the compiler to optimize out a small amount of code. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
Add a static inline function to "ni_labpc_isadma.h" to test if a DMA channel has been set-up, in which case `devpriv->dma_chan` will be non-zero (where `devpriv` point to the private data for the comedi device). If the "ni_labpc_isadma" module is not being built, don't bother checking `devpriv->dma_chan`; just return `false` as this may help the compiler to optimize out some unreachable code. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
Migrate the code for requesting an ISA DMA channel and a DMA buffer, and the code for freeing them into two new functions in the "ni_labpc_isadma" module: `labpc_init_dma_chan()` and `labpc_free_dma_chan()`. Dummy inline functions are provided in "ni_labpc_isadma.h" if the "ni_labpc_isadma" module is not being built. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
It's just an empty module at the moment, selected by COMEDI_NI_LABPC_ISA && ISA_DMA_API && VIRT_TO_BUS, but will be populated by later patches to migrate ISA DMA support for NI Lab-PC cards out of the "ni_labpc" module. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
`labpc_ai_cmd()` calls `labpc_cancel()` which already sets `devpriv->cmd3` to 0. Remove the lines from `labpc_ai_cmd()` that clear specific bits in `devpriv->cmd3` explicitly as they have no effect. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
If `labpc_attach()` allocates memory for `devpriv->dma_buffer` but fails to request a DMA channel, it frees `devpriv->dma_buffer` but leaves the pointer set. Later, `labpc_detach()` frees `devpriv->dma_buffer` again, which means it has been freed twice in this case. Fix it by only setting `devpriv->dma_buffer` in `labpc_attach()` if the DMA channel was requested successfully. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
Low-level comedi drivers registered with the comedi core by `comedi_driver_register()` are linked together into a simple linked list headed by the `comedi_drivers` variable and chained by the `next` member of `struct comedi_driver`. A driver is removed from the list by `comedi_driver_unregister()`. The driver list is iterated through by `comedi_device_attach()` when the `COMEDI_DEVCONFIG` ioctl is used to attach a "legacy" device to a driver, and is also iterated through by `comedi_read()` in "proc.c" when reading "/proc/comedi". There is currently no protection against items being added or removed from the list while it is being iterated. Add a mutex `comedi_drivers_list_lock` to be locked while adding or removing an item on the list, or when iterating through the list. `comedi_driver_unregister()` also checks for and detaches any devices using the driver. This is currently done before unlinking the driver from the list, but it makes more sense to unlink the driver from the list first to prevent `comedi_device_attach()` attempting to use it, so move the unlinking part to the start of the function. Also, in `comedi_device_attach()` hold on to the mutex until we've finished attempting to attach the device to avoid it interfering with the detachment in `comedi_driver_unregister()`. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ian Abbott 提交于
'Unregister' functions generally return `void`. `comedi_driver_unregister()` currently returns an `int` errno value. Nothing looks at the return value. Change the return type to `void`. Signed-off-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 H Hartley Sweeten 提交于
This driver can support the WinSystems PCM-IO48 PC/104 board. That board has two 8255 devices providing 48 digital I/O channels. Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 H Hartley Sweeten 提交于
The Intelligent Instrumentation PCI-20001C board is a legacy PC/XT/AT 8-bit ISA board not a PCI board. The "PCI" appears to mean "Personal Computer Instrumentation". Move the Kconfig option into the COMEDI_ISA group. Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 H Hartley Sweeten 提交于
Some of the comedi files include this header but don't need it. Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 H Hartley Sweeten 提交于
All the ioport resources are managed by the comedi core. None of the drivers depend on <linux/ioport.h>. Remove the includes. Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 H Hartley Sweeten 提交于
comedidev.h is the main kernel header for comedi. Every comedi driver includes this header which then includes a number of <linux/*> headers. All the drivers need <linux/module.h> and some of them need <linux/delay.h>. The rest are not needed by any of the drivers. Remove all the includes in comedidev.h except for <linux/dma-mapping.h>, which is needed to pick up the enum dma_data_direction for the comedi_subdevice definition, and "comedi.h", which is the uapi header for comedi. Add <linux/module.h> to all the comedi drivers and <linux/delay.h> to the couple that need it. Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 H Hartley Sweeten 提交于
Use the helper function to allocate memory and set the comedi_device private data pointer. This removes the dependency on slab.h from most of the drivers so remove the global #include in comedidev.h and the local #include in some of the drivers. Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 H Hartley Sweeten 提交于
Introduce a helper function to allocate memory and set the comedi_device private data pointer. Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: NIan Abbott <abbotti@mev.co.uk> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Greg Kroah-Hartman 提交于
This removes a bunch of unused helper macros in the kp30.h file as they were not being used anywhere, and they better not be used in the future. Cc: Peng Tao <tao.peng@emc.com> Cc: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Laurent Navet 提交于
use ERR_CAST() function instead of ERR_PTR() and PTR_ERR() found using coccinelle and err_cast.cocci Signed-off-by: NLaurent Navet <laurent.navet@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Masanari Iida 提交于
Correct spelling typo in printk within staging/lustre Signed-off-by: NMasanari Iida <standby24x7@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Bruno Faccini 提交于
FLocks requests (particulary F_UNLCKs) can't be trashed upon comm problems with Server/MDS nor upon kill/exit, thus we need to keep retry/send. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2665 Lustre-change: http://review.whamcloud.com/6415Signed-off-by: NBruno Faccini <bruno.faccini@intel.com> Reviewed-by: NBobi Jam <bobijam@gmail.com> Reviewed-by: NOleg Drokin <oleg.drokin@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Fan Yong 提交于
When OI scrub repaired the found inconsistency, it needs to purge the old object out of cache; otherwise, others may still use those cached stale information. Original patch adds functions in obdclass that is only used by server. Drop that part. Only merge in error handling change. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3335 Lustre-change: http://review.whamcloud.com/6697Signed-off-by: NFan Yong <fan.yong@intel.com> Reviewed-by: NAlex Zhuravlev <alexey.zhuravlev@intel.com> Reviewed-by: NAndreas Dilger <andreas.dilger@intel.com> Reviewed-by: NOleg Drokin <oleg.drokin@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 jcl 提交于
HSM coordinator memorizes all actions in a llog This patch implements the methods needed to create update display these records. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3339 Lustre-change: http://review.whamcloud.com/6529Signed-off-by: NJC Lafoucriere <jacques-charles.lafoucriere@cea.fr> Reviewed-by: NAndreas Dilger <andreas.dilger@intel.com> Reviewed-by: NOleg Drokin <oleg.drokin@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Keith Mannthey 提交于
EXPORT_SYMTAB is obsolete after 2.4 kernel, this patch removes EXPORT_SYMTAB from the source code again. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-1347 Lustre-change: http://review.whamcloud.com/6739Signed-off-by: NKeith Mannthey <keith.mannthey@intel.com> Reviewed-by: NPeng Tao <bergwolf@gmail.com> Reviewed-by: NLiu Xuezhao <xuezhao.liu@emc.com> Reviewed-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Patrick Farrell 提交于
When exporting Lustre via NFS on SLES11SP2, this check incorrectly identifies anonymous dentries as root dentries. This is due to a change in SLES11SP2 which makes the d_name.name for anonymous dentries the same as that for root dentries. (Details in LU-3484.) This changes the check to directly compare the value of the dentry pointer to the root dentry pointer found in the superblock, rather than using the name. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3484 Lustre-change: http://review.whamcloud.com/6726Signed-off-by: NPatrick Farrell <paf@cray.com> Reviewed-by: NBob Glossman <bob.glossman@intel.com> Reviewed-by: NAndreas Dilger <andreas.dilger@intel.com> Reviewed-by: NPeng Tao <bergwolf@gmail.com> Reviewed-by: NJames Simmons <uja.ornl@gmail.com> Reviewed-by: NAlexey Shvetsov <alexxy@gentoo.org> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Keith Mannthey 提交于
According to the standard, listxattr(2) should return -1 and errno should be set to ERANGE if the size of the list buffer is too small to hold the result. However ll_listxattr() will return a value bigger than the size of buffer in some cases. Let's assume listxattr(2) returns SIZE when it is called with a large enough list buffer. If it's called again with a list buffer whose size is smaller than SIZE but bigger than (SIZE - 12), then listxattr(2) will return SIZE too. This patch fixes the problem. Original patch by Li Xi <pkuelelixi@gmail.com> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3403 Lustre-change: http://review.whamcloud.com/6463Signed-off-by: NKeith Mannthey <keith.mannthey@intel.com> Reviewed-by: NLi Xi <pkuelelixi@gmail.com> Reviewed-by: NDmitry Eremin <dmitry.eremin@intel.com> Reviewed-by: NOleg Drokin <oleg.drokin@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Fan Yong 提交于
Lustre uses 64-bits inode number to identify object on client side. When re-export Lustre via NFS, NFS will detect whether support fsid via statfs(). For the non-support case, it will only recognizes and packs low 32-bits inode number in nfs handle. Such handle cannot be used to locate the object properly. To avoid patch linux kernel, Lustre client should generate fsid and return it via statfs() to up layer. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2904 Lustre-change: http://review.whamcloud.com/6493Signed-off-by: NFan Yong <fan.yong@intel.com> Reviewed-by: NAndreas Dilger <andreas.dilger@intel.com> Reviewed-by: NLai Siyao <lai.siyao@intel.com> Reviewed-by: NOleg Drokin <oleg.drokin@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Nathaniel Clark 提交于
Because whole options line gets passed to exclude processing, don't search from end of passed in argument to determine fsname at beginning. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2200 Lustre-change: http://review.whamcloud.com/6197Signed-off-by: NNathaniel Clark <nathaniel.l.clark@intel.com> Reviewed-by: NAndreas Dilger <andreas.dilger@intel.com> Reviewed-by: NAlex Zhuravlev <alexey.zhuravlev@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Ned Bass 提交于
Previously, I accidentally introduced a new way for duplicate directory entries to be returned from readdir(). That patch fails to properly decrement the nlupgs counter when breaking out of the inner-for loop. This accounting error causes an extra iteration of the inner-for loop when processing the next cfs page and a bad ldp_hash_end value is then saved in the lu_dirpage. To fix this, always decrement the nlupgs counter on entry into the inner loop. Note: this bug only affects architectures with > 4k-sized pages, e.g. PowerPC. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3182 Lustre-change: http://review.whamcloud.com/6405Signed-off-by: NNed Bass <bass6@llnl.gov> Reviewed-by: NFan Yong <fan.yong@intel.com> Reviewed-by: NAndreas Dilger <andreas.dilger@intel.com> Reviewed-by: NBobi Jam <bobijam@gmail.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 John L. Hammond 提交于
In lprocfs_register(), if proc_mkdir() fails then return ERR_PTR(-ENOMEM) rather than NULL and hold _lprocfs_mutex for the whole function. In lprocfs_remove_nolock() return early if the entry is an error pointer. Improve error handling around lprocfs_register() in a few spots. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2650 Lustre-change: http://review.whamcloud.com/5161Signed-off-by: NJohn L. Hammond <john.hammond@intel.com> Reviewed-by: NEmoly Liu <emoly.liu@intel.com> Reviewed-by: NKeith Mannthey <keith.mannthey@intel.com> Reviewed-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Liu Xuezhao 提交于
Split FLD server from client, fld_{handler,index}.c are not compliled unless server support is enabled. Do not include dt_object.h or lustre_mdt.h in lustre_fld.h and fix the minor breakages caused by this elsewhere. Generally cleanup includes in lustre/fld. Signed-off-by: NLiu Xuezhao <xuezhao.liu@emc.com> Signed-off-by: NJohn L. Hammond <john.hammond@intel.com> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-1330 Lustre-change: http://review.whamcloud.com/2675Reviewed-by: NNathaniel Clark <nathaniel.l.clark@intel.com> Reviewed-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Peng Tao 提交于
The file is empty. We can just remove it. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2335 Lustre-change: http://review.whamcloud.com/5880Reviewed-by: NLiang Zhen <liang.zhen@intel.com> Reviewed-by: NLi Wei <wei.g.li@intel.com> Reviewed-by: NIsaac Huang <he.huang@intel.com> Reviewed-by: NOleg Drokin <oleg.drokin@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Andriy Skulysh 提交于
Deadlock isn't detected if 2 threads are trying to grant 2 locks which deadlock on each other. They call ldlm_flock_deadlock() simultaneously and deadlock ins't detected. The soulition is to add lock to blocking list before calling ldlm_flock_deadlock() Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-1602 Lustre-change: http://review.whamcloud.com/3277Signed-off-by: NAndriy Skulysh <Andriy_Skulysh@xyratex.com> Reviewed-by: NVitaly Fertman <vitaly_fertman@xyratex.com> Reviewed-by: NBruce Korb <bruce_korb@xyratex.com> Reviewed-by: NKeith Mannthey <keith.mannthey@intel.com> Reviewed-by: NOleg Drokin <oleg.drokin@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 John L. Hammond 提交于
This partially reverts the change from "LU-2482 layout: introduce new layout for released files" by calling simple_setattr() from ll_md_setattr() without ATTR_SIZE set. Doing so avoids failed assertions in osc_page_delete(). Disable truncates on released files and modify sanity 229 accordingly. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3448 Lustre-change: http://review.whamcloud.com/6643Signed-off-by: NJohn L. Hammond <john.hammond@intel.com> Reviewed-by: Njacques-Charles Lafoucriere <jacques-charles.lafoucriere@cea.fr> Reviewed-by: NJinshan Xiong <jinshan.xiong@intel.com> Reviewed-by: NOleg Drokin <oleg.drokin@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Andreas Dilger 提交于
When creating a hard link to a file, the MDT/MDD/OSD code does not verify whether the target link name already exists in the directory. The ZFS ZAP code checks for duplicate entries. The add_dirent_to_buf() function in ldiskfs only checks entries for duplicates while it is traversing the leaf block looking for free space. Even if it scanned the whole leaf block, this would not work for non-htree directories since there is no guarantee that the name is being inserted into the same leaf block. To fix this, link should check target object doesn't exist as other creat operations. Add sanity.sh test_31o with multiple threads racing to link a new name into the directory, while ensuring that there is a free entry in the leaf block that is large enough to hold the duplicate name. This needs to be racy, because otherwise the client VFS will see the existing name and not send the RPC to the MDS, hiding the bug. Add DLDLMRES/PLDLMRES macros for printing the whole lock resource name (including the name hash) in LDLM_DEBUG() messages in a format similar to DFID/PFID so they can be found in debug logs more easily. The patch pickes client side change of the original patch, which only contains the DLM printk part. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2901 Lustre-change: http://review.whamcloud.com/6591Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NLai Siyao <lai.siyao@intel.com> Reviewed-by: NAlex Zhuravlev <alexey.zhuravlev@intel.com> Reviewed-by: NMike Pershin <mike.pershin@intel.com> Signed-off-by: NPeng Tao <tao.peng@emc.com> Signed-off-by: NAndreas Dilger <andreas.dilger@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-