summaryrefslogtreecommitdiffstats
path: root/fs
AgeCommit message (Collapse)Author
2011-02-21xfs: check if device support discard in xfs_ioc_trim()Lukas Czerner
Right now we, are relying on the fact that when we attempt to actually do the discard, blkdev_issue_discar() returns -EOPNOTSUPP and the user is informed that the device does not support discard. However, in the case where the we do not hit any suitable free extent to trim in FITRIM code, it will finish without any error. This is very confusing, because it seems that FITRIM was successful even though the device does not actually supports discard. Solution: Check for the discard support before attempt to search for free extents. Signed-off-by: Lukas Czerner <lczerner@redhat.com> Signed-off-by: Alex Elder <aelder@sgi.com>
2011-02-21ext4: allow inode_readahead_blks=0 (linux-2.6.37)Alexander V. Lukyanov
I cannot disable inode-read-ahead feature of ext4 (on 2.6.37): # echo 0 > /sys/fs/ext4/sda2/inode_readahead_blks bash: echo: write error: Invalid argument On a server with lots of small files and random access this read-ahead makes performance worse, and I'd like to disable it. I work around this problem by using value of 1, but it still reads an extra block. This patch fixes the problem by checking for zero explicitly. Signed-off-by: Alexander V. Lukyanov <lav@netis.ru> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2011-02-21ext4: Fix sparse warning: Using plain integer as NULL pointerPeter Huewe
This patch fixes the warning "Using plain integer as NULL pointer", generated by sparse, by replacing the offending 0s with NULL. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2011-02-21xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1Dan Rosenberg
The FSGEOMETRY_V1 ioctl (and its compat equivalent) calls out to xfs_fs_geometry() with a version number of 3. This code path does not fill in the logsunit member of the passed xfs_fsop_geom_t, leading to the leaking of four bytes of uninitialized stack data to potentially unprivileged callers. v2 switches to memset() to avoid future issues if structure members change, on suggestion of Dave Chinner. Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com> Reviewed-by: Eugene Teo <eugeneteo@kernel.org> Signed-off-by: Alex Elder <aelder@sgi.com>
2011-02-21ext4: fix compile warnings with EXT4FS_DEBUG enabledTheodore Ts'o
Compile 2.6.38-rc1 with turning EXT4FS_DEBUG on, we get following compile warnings. This patch fixes them. CC fs/ext4/hash.o CC fs/ext4/resize.o fs/ext4/resize.c: In function 'setup_new_group_blocks': fs/ext4/resize.c:233:2: warning: format '%#04llx' expects type 'long long unsigned int', but argument 3 has type 'long unsigned int' fs/ext4/resize.c:251:2: warning: format '%#04llx' expects type 'long long unsigned int', but argument 3 has type 'long unsigned int' CC fs/ext4/extents.o CC fs/ext4/ext4_jbd2.o CC fs/ext4/migrate.o Reported-by: Akira Fujita <a-fujita@rs.jp.nec.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2011-02-21Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6: eCryptfs: Copy up lower inode attrs in getattr ecryptfs: read on a directory should return EISDIR if not supported eCryptfs: Handle NULL nameidata pointers eCryptfs: Revert "dont call lookup_one_len to avoid NULL nameidata"
2011-02-21Docbook: add fs/eventfd.c and fix typos in itRandy Dunlap
Add fs/eventfd.c to filesystems docbook. Make typo corrections in fs/eventfd.c. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: Davide Libenzi <davidel@xmailserver.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-02-21Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: ceph: keep reference to parent inode on ceph_dentry ceph: queue cap_snaps once per realm libceph: fix socket write error handling libceph: fix socket read error handling
2011-02-21Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: [CIFS] update cifs version cifs: Fix regression in LANMAN (LM) auth code cifs: fix handling of scopeid in cifs_convert_address
2011-02-21[CIFS] update cifs versionSteve French
Update version to 1.71 so we can more easily spot modules with the last two fixes Signed-off-by: Steve French <sfrench@us.ibm.com>
2011-02-21cifs: Fix regression in LANMAN (LM) auth codeShirish Pargaonkar
LANMAN response length was changed to 16 bytes instead of 24 bytes. Revert it back to 24 bytes. Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com> CC: stable@kernel.org Signed-off-by: Steve French <sfrench@us.ibm.com>
2011-02-21eCryptfs: Copy up lower inode attrs in getattrTyler Hicks
The lower filesystem may do some type of inode revalidation during a getattr call. eCryptfs should take advantage of that by copying the lower inode attributes to the eCryptfs inode after a call to vfs_getattr() on the lower inode. I originally wrote this fix while working on eCryptfs on nfsv3 support, but discovered it also fixed an eCryptfs on ext4 nanosecond timestamp bug that was reported. https://bugs.launchpad.net/bugs/613873 Cc: <stable@kernel.org> Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
2011-02-21ecryptfs: read on a directory should return EISDIR if not supportedAndy Whitcroft
read() calls against a file descriptor connected to a directory are incorrectly returning EINVAL rather than EISDIR: [EISDIR] [XSI] [Option Start] The fildes argument refers to a directory and the implementation does not allow the directory to be read using read() or pread(). The readdir() function should be used instead. [Option End] This occurs because we do not have a .read operation defined for ecryptfs directories. Connect this up to generic_read_dir(). BugLink: http://bugs.launchpad.net/bugs/719691 Signed-off-by: Andy Whitcroft <apw@canonical.com> Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
2011-02-21eCryptfs: Handle NULL nameidata pointersTyler Hicks
Allow for NULL nameidata pointers in eCryptfs create, lookup, and d_revalidate functions. Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
2011-02-21Merge branch 'master' into for-2.6.39Tejun Heo
2011-02-21ocfs2: Make the left masklogs compat.Tao Ma
Since we have removed almost all of the masklogs in fs/ocfs2/*, make the left masklogs compat. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-21ocfs2: Remove masklog ML_AIO.Tao Ma
There is no user for masklog AIO, so remove it. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-24ocfs2: Remove masklog ML_UPTODATE.Tao Ma
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>
2011-02-24ocfs2: Remove masklog ML_BH_IO.Tao Ma
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>
2011-02-24ocfs2: Remove masklog ML_JOURNAL.Tao Ma
Remove mlog(0) from fs/ocfs2/journal.c and the masklog JOURNAL. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-24ocfs2: Remove masklog ML_EXPORT.Tao Ma
Remove mlog(0) from fs/ocfs2/export.c and the masklog EXPORT. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-23ocfs2: Remove masklog ML_DCACHE.Tao Ma
Remove mlog(0) from fs/ocfs2/dcache.c and the masklog DCACHE. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-23ocfs2: Remove masklog ML_NAMEI.Tao Ma
Remove mlog(0) from fs/ocfs2/namei.c and the masklog NAMEI finally. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-23ocfs2: Remove mlog(0) from fs/ocfs2/dir.cTao Ma
This is the 2nd step to remove the debug info of NAMEI. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-21ocfs2: remove NAMEI from symlink.cTao Ma
No mlog(0,...) in symlink.c, so just remove NAMEI. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-23ocfs2: Remove masklog ML_QUOTA.Tao Ma
Remove mlog(0) from fs/ocfs2/quota_global.c and the masklog QUOTA. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-23ocfs2: Remove mlog(0) from quota_local.c.Tao Ma
Remove mlog(0) from fs/ocfs2/quota_local.c. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-23ocfs2: Remove masklog ML_RESERVATIONS.Tao Ma
Remove mlog(0) from fs/ocfs2/reservations.c and the masklog RESERVATIONS. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-23ocfs2: Remove masklog ML_XATTR.Tao Ma
Remove mlog(0) from fs/ocfs2/xattr.c and the masklog ML_XATTR. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-23ocfs2: Remove masklog ML_SUPER.Tao Ma
Remove mlog(0) from fs/ocfs2/super.c and the masklog SUPER. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-23ocfs2: Remove mlog(0) from fs/ocfs2/heartbeat.cTao Ma
This is the 2nd step to remove the debug info of SUPER. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-22ocfs2: Remove mlog(0) from fs/ocfs2/slot_map.cTao Ma
This is the 1st step to remove the debug info of SUPER. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-22ocfs2: Remove masklog ML_EXTENT_MAP.Tao Ma
Remove mlog(0) from fs/ocfs2/extent_map.c and the masklog EXTENT_MAP. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-22ocfs2: Remove masklog ML_INODE.Tao Ma
Remove mlog(0) from fs/ocfs2/inode.c and the masklog INODE. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-21ocfs2: Little refactoring against ocfs2_iget.Tao Ma
ocfs2_iget is used to get/create inode. Only iget5_locked will give us an inode = NULL. So move this check ahead of ocfs2_read_locked_inode so that we don't need to check inode before we read and unlock inode. This is also helpful for trace event(see the next patch). Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-22ocfs2: Remove mlog(0) from fs/ocfs2/file.cTao Ma
This is the 2nd step to remove the debug info of INODE. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-21ocfs2: remove INODE from unused files.Tao Ma
As there are no such debug information in fs/ocfs2/ioctl.c, fs/ocfs2/locks.c and fs/ocfs2/sysfile.c, ML_INODE are also removed. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-22ocfs2: Remove FILE_IO from masklog.Tao Ma
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>
2011-02-22ocfs2: Remove mlog(0) from fs/ocfs2/aops.cTao Ma
Remove all the "mlog(0," in fs/ocfs2/aops.c. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-22ocfs2: Remove masklog ML_REFCOUNT.Tao Ma
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>
2011-02-22ocfs2: Remove DISK_ALLOC from masklog.Tao Ma
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>
2011-02-22ocfs2: Remove mlog(0) from fs/ocfs2/suballoc.cTao Ma
This is the 4th step to remove the debug info of DISK_ALLOC. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-22ocfs2: Remove mlog(0) from fs/ocfs2/suballoc.cTao Ma
This is the 3rd step to remove the debug info of DISK_ALLOC. Signed-off-by: Tao Ma <boyu.mt@taobao.com>
2011-02-22ocfs2: Remove mlog(0) from fs/ocfs2/localalloc.cTao Ma
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>
2011-02-22ocfs2: Remove mlog(0) from fs/ocfs2/alloc.cTao Ma
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>
2011-02-21ocfs2: Add ocfs2_trace.h.Wengang Wang
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>
2011-03-07ocfs2: Remove EXIT from masklog.Tao Ma
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>
2011-02-21ocfs2: Remove ENTRY from masklog.Tao Ma
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>
2011-02-20Ocfs2: Using macro to set/clear *FILLED* flags in info handler.Tristan Ye
It's a best-effort attempt to simplize duplicated codes here. Signed-off-by: Tristan Ye <tristan.ye@oracle.com> Signed-off-by: Joel Becker <jlbec@evilplan.org>
2011-02-20ocfs2: optimize ocfs2_check_dir_entry() with unlikely() annotationsTao Ma
In cad3f00, ext4_check_dir_entry was modified by adding some unlikely. Ted described it as "This function gets called a lot for large directories, and the answer is almost always 'no, no, there's no problem'. This means using unlikely() is a good thing." ext3 added the similar change in commit a4ae309. So change it accordingly in ocfs2. Cc: Joel Becker <jlbec@evilplan.org> Signed-off-by: Tao Ma <boyu.mt@taobao.com> Signed-off-by: Joel Becker <jlbec@evilplan.org>