summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/journal.h
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH 2/2] ocfs2: Implement group add for online resizeTao Ma2008-01-251-0/+3
| | | | | | | | | | | | | | | | This patch adds the ability for a userspace program to request that a properly formatted cluster group be added to the main allocation bitmap for an Ocfs2 file system. The request is made via an ioctl, OCFS2_IOC_GROUP_ADD. On a high level, this is similar to ext3, but we use a different ioctl as the structure which has to be passed through is different. During an online resize, tunefs.ocfs2 will format any new cluster groups which must be added to complete the resize, and call OCFS2_IOC_GROUP_ADD on each one. Kernel verifies that the core cluster group information is valid and then does the work of linking it into the global allocation bitmap. Signed-off-by: Tao Ma <tao.ma@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* [PATCH 1/2] ocfs2: Add group extend for online resizeTao Ma2008-01-251-0/+3
| | | | | | | | | | | | | This patch adds the ability for a userspace program to request an extend of last cluster group on an Ocfs2 file system. The request is made via ioctl, OCFS2_IOC_GROUP_EXTEND. This is derived from EXT3_IOC_GROUP_EXTEND, but is obviously Ocfs2 specific. tunefs.ocfs2 would call this for an online-resize operation if the last cluster group isn't full. Signed-off-by: Tao Ma <tao.ma@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: Write support for inline dataMark Fasheh2007-10-121-0/+3
| | | | | | | | | | | | | | | | | | This fixes up write, truncate, mmap, and RESVSP/UNRESVP to understand inline inode data. For the most part, the changes to the core write code can be relied on to do the heavy lifting. Any code calling ocfs2_write_begin (including shared writeable mmap) can count on it doing the right thing with respect to growing inline data to an extent tree. Size reducing truncates, including UNRESVP can simply zero that portion of the inode block being removed. Size increasing truncatesm, including RESVP have to be a little bit smarter and grow the inode to an extent tree if necessary. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com> Reviewed-by: Joel Becker <joel.becker@oracle.com>
* ocfs2: support for removing file regionsMark Fasheh2007-07-101-0/+2
| | | | | | | | | | Provide an internal interface for the removal of arbitrary file regions. ocfs2_remove_inode_range() takes a byte range within a file and will remove existing extents within that range. Partial clusters will be zeroed so that any read from within the region will return zeros. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: make room for unwritten extents flagMark Fasheh2007-04-261-1/+1
| | | | | | | | | | Due to the size of our group bitmaps, we'll never have a leaf node extent record with more than 16 bits worth of clusters. Split e_clusters up so that leaf nodes can get a flags field where we can mark unwritten extents. Interior nodes whose length references all the child nodes beneath it can't split their e_clusters field, so we use a union to preserve sizing there. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: ocfs2_link() journal credits updateMark Fasheh2007-02-011-2/+2
| | | | | | | | | | Commit 592282cf2eaa33409c6511ddd3f3ecaa57daeaaa fixed some missing directory c/mtime updates in part by introducing a dinode update in ocfs2_add_entry(). Unfortunately, ocfs2_link() (which didn't update the directory inode before) is now missing a single journal credit. Fix this by doubling the number of inode updates expected during hard link creation. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* ocfs2: local mountsSunil Mushran2006-12-071-1/+4
| | | | | | | | | | This allows users to format an ocfs2 file system with a special flag, OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT. When the file system sees this flag, it will not use any cluster services, nor will it require a cluster configuration, thus acting like a 'local' file system. Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* Merge branch 'master' of ↵David Howells2006-12-051-67/+11
|\ | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 Conflicts: drivers/ata/libata-scsi.c include/linux/libata.h Futher merge of Linus's head and compilation fixups. Signed-Off-By: David Howells <dhowells@redhat.com>
| * ocfs2: Remove struct ocfs2_journal_handle in favor of handle_tMark Fasheh2006-12-011-11/+10
| | | | | | | | | | | | | | | | | | | | This is mostly a search and replace as ocfs2_journal_handle is now no more than a container for a handle_t pointer. ocfs2_commit_trans() becomes very straight forward, and we remove some out of date comments / code. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
| * ocfs2: remove handle argument to ocfs2_start_trans()Mark Fasheh2006-12-011-1/+0
| | | | | | | | | | | | | | | | | | All callers either pass in NULL directly, or a local variable that is already set to NULL. The internals of ocfs2_start_trans() get a nice cleanup as a result. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
| * ocfs2: remove ocfs2_journal_handle journal fieldMark Fasheh2006-12-011-1/+0
| | | | | | | | | | | | It is no longer used. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
| * ocfs2: pass ocfs2_super * into ocfs2_commit_trans()Mark Fasheh2006-12-011-1/+2
| | | | | | | | | | | | This sets us up to remove handle->journal. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
| * ocfs2: make ocfs2_alloc_handle() staticMark Fasheh2006-12-011-6/+0
| | | | | | | | | | | | This is no longer used outside of journal.c Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
| * ocfs2: remove unused ocfs2_handle_add_lock()Mark Fasheh2006-12-011-20/+0
| | | | | | | | | | | | | | | | | | | | This gets us rid of a slab we no longer need, as well as removing the majority of what's left on ocfs2_journal_handle. ocfs2_commit_unstarted_handle() has no more real work to do, so remove that function too. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
| * ocfs2: remove unused ocfs2_handle_add_inode()Mark Fasheh2006-12-011-9/+0
| | | | | | | | | | | | | | | | We can also delete the unused infrastructure which was once in place to support this functionality. ocfs2_inode_private loses ip_handle and ip_handle_list. ocfs2_journal_handle loses handle_list. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
| * ocfs2: remove ocfs2_journal_handle flags fieldMark Fasheh2006-12-011-17/+0
| | | | | | | | | | | | | | | | Callers can set h_sync directly on the handle_t, whether a transaction has been started or not can be determined via the existence of the handle_t on the struct ocfs2_journal_handle. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
| * ocfs2: have ocfs2_extend_trans() take handle_tMark Fasheh2006-12-011-2/+1
| | | | | | | | | | | | | | | | | | | | No reason to use our wrapper struct in this function, so take the handle_t directly. Also fixes a bug where we were incorrectly setting the handle to NULL in case of a failure from journal_restart() Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
| * ocfs2: remove unused ocfs2_journal_handle fieldMark Fasheh2006-12-011-1/+0
| | | | | | | | | | | | max_buffs was just being set and not actually used. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* | WorkStruct: make allyesconfigDavid Howells2006-11-221-1/+1
|/ | | | | | Fix up for make allyesconfig. Signed-Off-By: David Howells <dhowells@redhat.com>
* [PATCH] ocfs2: only checkpoint journal when asked toMark Fasheh2006-02-161-2/+0
| | | | | | | | Disable automatic checkpointing of the journal - this is a relic from older ocfs2 days. Worth quite a bit of performance on longer running single node tests. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
* [PATCH] OCFS2: The Second Oracle Cluster FilesystemMark Fasheh2006-01-031-0/+457
The OCFS2 file system module. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com> Signed-off-by: Kurt Hackel <kurt.hackel@oracle.com>