summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/ocfs2_trace.h
Commit message (Collapse)AuthorAgeFilesLines
* ocfs2: fix a tiny race when running dirop_fileop_racerYiwen Jiang2014-06-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running dirop_fileop_racer we found a dead lock case. 2 nodes, say Node A and Node B, mount the same ocfs2 volume. Create /race/16/1 in the filesystem, and let the inode number of dir 16 is less than the inode number of dir race. Node A Node B mv /race/16/1 /race/ right after Node A has got the EX mode of /race/16/, and tries to get EX mode of /race ls /race/16/ In this case, Node A has got the EX mode of /race/16/, and wants to get EX mode of /race/. Node B has got the PR mode of /race/, and wants to get the PR mode of /race/16/. Since EX and PR are mutually exclusive, dead lock happens. This patch fixes this case by locking in ancestor order before trying inode number order. Signed-off-by: Yiwen Jiang <jiangyiwen@huawei.com> Signed-off-by: Joseph Qi <joseph.qi@huawei.com> Cc: Joel Becker <jlbec@evilplan.org> Reviewed-by: Mark Fasheh <mfasheh@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* ocfs2: lighten up allocate transactionYounger Liu2013-09-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The issue scenario is as following: When fallocating a very large disk space for a small file, __ocfs2_extend_allocation attempts to get a very large transaction. For some journal sizes, there may be not enough room for this transaction, and the fallocate will fail. The patch below extends & restarts the transaction as necessary while allocating space, and should work with even the smallest journal. This patch refers ext4 resize. Test: # mkfs.ocfs2 -b 4K -C 32K -T datafiles /dev/sdc ...(jounral size is 32M) # mount.ocfs2 /dev/sdc /mnt/ocfs2/ # touch /mnt/ocfs2/1.log # fallocate -o 0 -l 400G /mnt/ocfs2/1.log fallocate: /mnt/ocfs2/1.log: fallocate failed: Cannot allocate memory # tail -f /var/log/messages [ 7372.278591] JBD: fallocate wants too many credits (2051 > 2048) [ 7372.278597] (fallocate,6438,0):__ocfs2_extend_allocation:709 ERROR: status = -12 [ 7372.278603] (fallocate,6438,0):ocfs2_allocate_unwritten_extents:1504 ERROR: status = -12 [ 7372.278607] (fallocate,6438,0):__ocfs2_change_file_space:1955 ERROR: status = -12 ^C With this patch, the test works well. Signed-off-by: Younger Liu <younger.liu@huawei.com> Cc: Jie Liu <jeff.liu@oracle.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: Add trace event for trim.Tao Ma2011-05-231-0/+25
| | | | | | | Add the corresponding trace event for trim. Signed-off-by: Tao Ma <boyu.mt@taobao.com> Signed-off-by: Joel Becker <jlbec@evilplan.org>
* ocfs2: Remove masklog ML_UPTODATE.Tao Ma2011-02-241-0/+42
| | | | | | | | | 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-0/+46
| | | | | | | | 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-0/+99
| | | | | | 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/+81
| | | | | | 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-0/+99
| | | | | | 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-0/+235
| | | | | | Remove mlog(0) from fs/ocfs2/namei.c and the masklog NAMEI finally. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove mlog(0) from fs/ocfs2/dir.cTao Ma2011-02-231-0/+116
| | | | | | This is the 2nd step to remove the debug info of NAMEI. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_QUOTA.Tao Ma2011-02-231-0/+78
| | | | | | | Remove mlog(0) from fs/ocfs2/quota_global.c and the masklog QUOTA. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove mlog(0) from quota_local.c.Tao Ma2011-02-231-0/+10
| | | | | | Remove mlog(0) from fs/ocfs2/quota_local.c. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_RESERVATIONS.Tao Ma2011-02-231-0/+116
| | | | | | 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-0/+164
| | | | | | 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-0/+108
| | | | | | Remove mlog(0) from fs/ocfs2/super.c and the masklog SUPER. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove mlog(0) from fs/ocfs2/heartbeat.cTao Ma2011-02-231-0/+7
| | | | | | | This is the 2nd step to remove the debug info of SUPER. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove mlog(0) from fs/ocfs2/slot_map.cTao Ma2011-02-221-0/+11
| | | | | | This is the 1st step to remove the debug info of SUPER. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_EXTENT_MAP.Tao Ma2011-02-221-0/+29
| | | | | | 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-0/+136
| | | | | | Remove mlog(0) from fs/ocfs2/inode.c and the masklog INODE. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove mlog(0) from fs/ocfs2/file.cTao Ma2011-02-221-0/+237
| | | | | | | This is the 2nd step to remove the debug info of INODE. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove FILE_IO from masklog.Tao Ma2011-02-221-0/+25
| | | | | | | 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 mlog(0) from fs/ocfs2/aops.cTao Ma2011-02-221-0/+124
| | | | | | Remove all the "mlog(0," in fs/ocfs2/aops.c. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove masklog ML_REFCOUNT.Tao Ma2011-02-221-0/+263
| | | | | | | 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 mlog(0) from fs/ocfs2/suballoc.cTao Ma2011-02-221-0/+10
| | | | | | | This is the 4th step to remove the debug info of DISK_ALLOC. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove mlog(0) from fs/ocfs2/suballoc.cTao Ma2011-02-221-0/+212
| | | | | | This is the 3rd step to remove the debug info of DISK_ALLOC. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove mlog(0) from fs/ocfs2/localalloc.cTao Ma2011-02-221-0/+112
| | | | | | | | | | | | | | This is the 2nd step to remove the debug info of DISK_ALLOC. So this patch removes all mlog(0,...) from localalloc.c and adds the corresponding tracepoints. Different mlogs have different solutions. 1. Some are replaced with trace event directly. 2. Some are replaced while some new parameters are added. 3. Some are combined into one trace events. 4. Some redundant mlogs are removed. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Remove mlog(0) from fs/ocfs2/alloc.cTao Ma2011-02-221-0/+364
| | | | | | | | | | | | | | | | | | | | | | This is the first try of replacing debug mlog(0,...) to trace events. Wengang has did some work in his original patch http://oss.oracle.com/pipermail/ocfs2-devel/2009-November/005513.html But he didn't finished it. So this patch removes all mlog(0,...) from alloc.c and adds the corresponding trace events. Different mlogs have different solutions. 1. Some are replaced with trace event directly. 2. Some are replaced and some new parameters are added since I think we need to know the btree owner in that case. 3. Some are combined into one trace events. 4. Some redundant mlogs are removed. What's more, it defines some event classes so that we can use them later. Cc: Wengang Wang <wen.gang.wang@oracle.com> Signed-off-by: Tao Ma <boyu.mt@taobao.com>
* ocfs2: Add ocfs2_trace.h.Wengang Wang2011-02-211-0/+16
About one year ago, Wengang Wang tried some first steps to add tracepoints to ocfs2. Hiss original patch is here: http://oss.oracle.com/pipermail/ocfs2-devel/2009-November/005512.html But as Steven Rostedt indicated in his article http://lwn.net/Articles/383362/, we'd better have our trace files resides in fs/ocfs2, so I rewrited the patch using the method Steven mentioned in that article. Signed-off-by: Wengang Wang <wen.gang.wang@oracle.com> Signed-off-by: Tao Ma <boyu.mt@taobao.com>