summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/cluster/masklog.c
Commit message (Collapse)AuthorAgeFilesLines
* ocfs2: remove __mlog_cpu_guessAndrew Morton2015-06-251-16/+3Star
| | | | | | | | | | | | raw_smp_processor_id() is the means of avoiding the runtime preemptibility check. [akpm@linux-foundation.org: fix printk warning] Cc: Joe Perches <joe@perches.com> Cc: Joel Becker <jlbec@evilplan.org> Cc: Mark Fasheh <mfasheh@suse.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* ocfs2: reduce object size of mlog usesJoe Perches2015-06-251-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | Using a function for __mlog_printk instead of a macro reduces the object size of built-in.o by about 190KB, or ~18% overall (x86-64 defconfig with all ocfs2 options) $ size fs/ocfs2/built-in.o* text data bss dec hex filename 870954 118471 134408 1123833 1125f9 fs/ocfs2/built-in.o,new 1064081 118071 134408 1316560 1416d0 fs/ocfs2/built-in.o.old Miscellanea: - Move the used-once __mlog_cpu_guess statement expression macro to the masklog.c file above the use in __mlog_printk function - Simplify the mlog macro moving the and/or logic and level code into __mlog_printk [akpm@linux-foundation.org: export __mlog_printk() to other ocfs2 modules] Signed-off-by: Joe Perches <joe@perches.com> Cc: Joel Becker <jlbec@evilplan.org> Cc: Mark Fasheh <mfasheh@suse.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* ocfs2: replace strnicmp with strncasecmpRasmus Villemoes2014-10-141-3/+3
| | | | | | | | | | | | | | | | | | The kernel used to contain two functions for length-delimited, case-insensitive string comparison, strnicmp with correct semantics and a slightly buggy strncasecmp. The latter is the POSIX name, so strnicmp was renamed to strncasecmp, and strnicmp made into a wrapper for the new strncasecmp to avoid breaking existing users. To allow the compat wrapper strnicmp to be removed at some point in the future, and to avoid the extra indirection cost, do s/strnicmp/strncasecmp/g. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Cc: Mark Fasheh <mfasheh@suse.com> Cc: Joel Becker <jlbec@evilplan.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* ocfs2: Remove masklog ML_AIO.Tao Ma2011-02-211-1/+0Star
| | | | | | There is no user for masklog AIO, so remove it. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_UPTODATE.Tao Ma2011-02-241-1/+0Star
| | | | | | | | | Remove mlog(0,...) and mlog(ML_UPTODATE,...) from fs/ocfs2/uptodate.c and fs/ocfs2/buffer_head_io.c. The masklog UPTODATE is removed finally. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_BH_IO.Tao Ma2011-02-241-1/+0Star
| | | | | | | | Remove mlog(0,...) and mlog(ML_BH_IO,...) from fs/ocfs2/buffer_head_io.c. The masklog BH_IO is removed finally. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_JOURNAL.Tao Ma2011-02-241-1/+0Star
| | | | | | Remove mlog(0) from fs/ocfs2/journal.c and the masklog JOURNAL. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_EXPORT.Tao Ma2011-02-241-1/+0Star
| | | | | | Remove mlog(0) from fs/ocfs2/export.c and the masklog EXPORT. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_DCACHE.Tao Ma2011-02-231-1/+0Star
| | | | | | Remove mlog(0) from fs/ocfs2/dcache.c and the masklog DCACHE. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_NAMEI.Tao Ma2011-02-231-1/+0Star
| | | | | | Remove mlog(0) from fs/ocfs2/namei.c and the masklog NAMEI finally. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_QUOTA.Tao Ma2011-02-231-1/+0Star
| | | | | | | Remove mlog(0) from fs/ocfs2/quota_global.c and the masklog QUOTA. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_RESERVATIONS.Tao Ma2011-02-231-1/+0Star
| | | | | | Remove mlog(0) from fs/ocfs2/reservations.c and the masklog RESERVATIONS. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_XATTR.Tao Ma2011-02-231-1/+0Star
| | | | | | Remove mlog(0) from fs/ocfs2/xattr.c and the masklog ML_XATTR. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_SUPER.Tao Ma2011-02-231-1/+0Star
| | | | | | Remove mlog(0) from fs/ocfs2/super.c and the masklog SUPER. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_EXTENT_MAP.Tao Ma2011-02-221-1/+0Star
| | | | | | Remove mlog(0) from fs/ocfs2/extent_map.c and the masklog EXTENT_MAP. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_INODE.Tao Ma2011-02-221-1/+0Star
| | | | | | Remove mlog(0) from fs/ocfs2/inode.c and the masklog INODE. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove FILE_IO from masklog.Tao Ma2011-02-221-1/+0Star
| | | | | | | Change all the "mlog(0," in fs/ocfs2/mmap.c to trace events. And finally remove masklog FILE_IO. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_REFCOUNT.Tao Ma2011-02-221-1/+0Star
| | | | | | | Change all the "mlog(0," in fs/ocfs2/refcounttree.c to trace events. And finally remove masklog ML_REFCOUNT. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove DISK_ALLOC from masklog.Tao Ma2011-02-221-1/+0Star
| | | | | | | | Since all 4 files, localalloc.c, suballoc.c, alloc.c and resize.c, which use DISK_ALLOC are changed to trace events, Remove masklog DISK_ALLOC totally. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove EXIT from masklog.Tao Ma2011-03-071-2/+1Star
| | | | | | | | | | | | | | | | | | mlog_exit is used to record the exit status of a function. But because it is added in so many functions, if we enable it, the system logs get filled up quickly and cause too much I/O. So actually no one can open it for a production system or even for a test. This patch just try to remove it or change it. So: 1. if all the error paths already use mlog_errno, it is just removed. Otherwise, it will be replaced by mlog_errno. 2. if it is used to print some return value, it is replaced with mlog(0,...). mlog_exit_ptr is changed to mlog(0. All those mlog(0,...) will be replaced with trace events later. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove ENTRY from masklog.Tao Ma2011-02-211-1/+0Star
| | | | | | | | | | | | | | ENTRY is used to record the entry of a function. But because it is added in so many functions, if we enable it, the system logs get filled up quickly and cause too much I/O. So actually no one can open it for a production system or even for a test. So for mlog_entry_void, we just remove it. for mlog_entry(...), we replace it with mlog(0,...), and they will be replace by trace event later. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Adjust masklog flag valuesSunil Mushran2010-12-161-1/+2
| | | | | | | Two masklogs had the same flag value. Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com>
* ocfs2: allocation reservationsMark Fasheh2010-05-061-0/+1
| | | | | | | | | | | | | | | | | | | | This patch improves Ocfs2 allocation policy by allowing an inode to reserve a portion of the local alloc bitmap for itself. The reserved portion (allocation window) is advisory in that other allocation windows might steal it if the local alloc bitmap becomes full. Otherwise, the reservations are honored and guaranteed to be free. When the local alloc window is moved to a different portion of the bitmap, existing reservations are discarded. Reservation windows are represented internally by a red-black tree. Within that tree, each node represents the reservation window of one inode. An LRU of active reservations is also maintained. When new data is written, we allocate it from the inodes window. When all bits in a window are exhausted, we allocate a new one as close to the previous one as possible. Should we not find free space, an existing reservation is pulled off the LRU and cannibalized. Signed-off-by: Mark Fasheh <mfasheh@suse.com>
* Driver core: Constify struct sysfs_ops in struct kobj_typeEmese Revfy2010-03-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Constify struct sysfs_ops. This is part of the ops structure constification effort started by Arjan van de Ven et al. Benefits of this constification: * prevents modification of data that is shared (referenced) by many other structure instances at runtime * detects/prevents accidental (but not intentional) modification attempts on archs that enforce read-only kernel data at runtime * potentially better optimized code as the compiler can assume that the const data cannot be changed * the compiler/linker move const data into .rodata and therefore exclude them from false sharing Signed-off-by: Emese Revfy <re.emese@gmail.com> Acked-by: David Teigland <teigland@redhat.com> Acked-by: Matt Domsch <Matt_Domsch@dell.com> Acked-by: Maciej Sosnowski <maciej.sosnowski@intel.com> Acked-by: Hans J. Koch <hjk@linutronix.de> Acked-by: Pekka Enberg <penberg@cs.helsinki.fi> Acked-by: Jens Axboe <jens.axboe@oracle.com> Acked-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* ocfs2: Use a separate masklog for AST and BASTsSunil Mushran2010-02-281-0/+1
| | | | | | | | | This patch adds a new masklog and uses it allow tracing ASTs and BASTs in the dlmglue layer. This has been found to be very useful in debugging cluster locking issues. Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com>
* ocfs2: Add ocfs2_read_refcount_block.Tao Ma2009-09-231-0/+1
| | | | Signed-off-by: Tao Ma <tao.ma@oracle.com>
* ocfs2/quota: Add QUOTA in mlog_attribute.Tao Ma2009-01-051-0/+1
| | | | | | | | | A new mlog mask has to be added into mlog_attribute before it can be really used in mlog. ML_QUOTA is only added in masklog.h, so add it to the array to enable it. Signed-off-by: Tao Ma <tao.ma@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
* ocfs2: Add extent tree operation for xattr value btreesTao Ma2008-10-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | Add some thin wrappers around ocfs2_insert_extent() for each of the 3 different btree types, ocfs2_inode_insert_extent(), ocfs2_xattr_value_insert_extent() and ocfs2_xattr_tree_insert_extent(). The last is for the xattr index btree, which will be used in a followup patch. All the old callers in file.c etc will call ocfs2_dinode_insert_extent(), while the other two handle the xattr issue. And the init of extent tree are handled by these functions. When storing xattr value which is too large, we will allocate some clusters for it and here ocfs2_extent_list and ocfs2_extent_rec will also be used. In order to re-use the b-tree operation code, a new parameter named "private" is added into ocfs2_extent_tree and it is used to indicate the root of ocfs2_exent_list. The reason is that we can't deduce the root from the buffer_head now. It may be in an inode, an ocfs2_xattr_block or even worse, in any place in an ocfs2_xattr_bucket. Signed-off-by: Tao Ma <tao.ma@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
* kset: convert ocfs2 to use kset_createGreg Kroah-Hartman2008-01-251-2/+2
| | | | | | | | | | | | Dynamically create the kset instead of declaring it statically. Also use the new kobj_attribute which cleans up this file a _lot_. Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Mark Fasheh <mark.fasheh@oracle.com> Cc: Kurt Hackel <kurt.hackel@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* kobject: remove struct kobj_type from struct ksetGreg Kroah-Hartman2008-01-251-1/+1
| | | | | | | | | | | | | | | | | We don't need a "default" ktype for a kset. We should set this explicitly every time for each kset. This change is needed so that we can make ksets dynamic, and cleans up one of the odd, undocumented assumption that the kset/kobject/ktype model has. This patch is based on a lot of help from Kay Sievers. Nasty bug in the block code was found by Dave Young <hidave.darkstar@gmail.com> Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Dave Young <hidave.darkstar@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* Drivers: clean up direct setting of the name of a ksetGreg Kroah-Hartman2007-10-121-1/+2
| | | | | | | | | | | | A kset should not have its name set directly, so dynamically set the name at runtime. This is needed to remove the static array in the kobject structure which will be changed in a future patch. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* sysfs: kill unnecessary attribute->ownerTejun Heo2007-07-121-1/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | | | sysfs is now completely out of driver/module lifetime game. After deletion, a sysfs node doesn't access anything outside sysfs proper, so there's no reason to hold onto the attribute owners. Note that often the wrong modules were accounted for as owners leading to accessing removed modules. This patch kills now unnecessary attribute->owner. Note that with this change, userland holding a sysfs node does not prevent the backing module from being unloaded. For more info regarding lifetime rule cleanup, please read the following message. http://article.gmane.org/gmane.linux.kernel/510293 (tweaked by Greg to not delete the field just yet, to make it easier to merge things properly.) Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Cornelia Huck <cornelia.huck@de.ibm.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* ocfs2: Fix masklog breakageTiger Yang2007-06-071-2/+1Star
| | | | | | | | | Some of the sysfs changes inadvertantly broke the simple runtime debug log filtering employed in ocfs2. Fix this by properly exporting the masklog category filter names. Signed-off-by: Tiger Yang <tiger.yang@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: kobject/kset foobarRandy Dunlap2007-05-101-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix gcc warning and Oops that it causes: fs/ocfs2/cluster/masklog.c:161: warning: assignment from incompatible pointer type [ 2776.204120] OCFS2 Node Manager 1.3.3 [ 2776.211729] BUG: spinlock bad magic on CPU#0, modprobe/4424 [ 2776.214269] lock: ffff810021c8fe18, .magic: ffffffff, .owner: /6394416, .owner_cpu: 0 [ 2776.217864] [ 2776.217865] Call Trace: [ 2776.219662] [<ffffffff803426c8>] spin_bug+0x9e/0xe9 [ 2776.221921] [<ffffffff803427bf>] _raw_spin_lock+0x23/0xf9 [ 2776.224417] [<ffffffff8051acf4>] _spin_lock+0x9/0xb [ 2776.226676] [<ffffffff8033c3b1>] kobject_shadow_add+0x98/0x1ac [ 2776.229367] [<ffffffff8033c4d0>] kobject_add+0xb/0xd [ 2776.231665] [<ffffffff8033c4df>] kset_add+0xd/0xf [ 2776.233845] [<ffffffff8033c5a6>] kset_register+0x23/0x28 [ 2776.236309] [<ffffffff8808ccb7>] :ocfs2_nodemanager:mlog_sys_init+0x68/0x6d [ 2776.239518] [<ffffffff8808ccee>] :ocfs2_nodemanager:o2cb_sys_init+0x32/0x4a [ 2776.242726] [<ffffffff880b80a6>] :ocfs2_nodemanager:init_o2nm+0xa6/0xd5 [ 2776.245772] [<ffffffff8025266c>] sys_init_module+0x1471/0x15d2 [ 2776.248465] [<ffffffff8033f250>] simple_strtoull+0x0/0xdc [ 2776.250959] [<ffffffff8020948e>] system_call+0x7e/0x83 Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Acked-by: Mark Fasheh <mark.fasheh@oracle.com> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* remove "struct subsystem" as it is no longer neededGreg Kroah-Hartman2007-05-031-2/+2
| | | | | | | | | | | We need to work on cleaning up the relationship between kobjects, ksets and ktypes. The removal of 'struct subsystem' is the first step of this, especially as it is not really needed at all. Thanks to Kay for fixing the bugs in this patch. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* ocfs2: Set .owner on masklog sysfs attributes.Joel Becker2006-03-011-0/+1
| | | | | Signed-off-by: Joel Becker <joel.becker@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* [PATCH] OCFS2: The Second Oracle Cluster FilesystemZach Brown2006-01-031-0/+166
Very simple printk wrapper which adds the ability to enable various sets of debug messages at run-time. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com> Signed-off-by: Kurt Hackel <kurt.hackel@oracle.com>