From: Tao Ma <tao.ma@oracle.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH 02/15] ocfs2: Add clusters free in dealloc_ctxt.
Date: Tue, 04 Nov 2008 09:34:40 +0800 [thread overview]
Message-ID: <490FA6B0.5010303@oracle.com> (raw)
In-Reply-To: <20081104011652.GH22137@mail.oracle.com>
Joel Becker wrote:
>> +{
>> + int ret = 0;
>> + struct ocfs2_cached_block_free *item;
>> +
>> + item = kmalloc(sizeof(*item), GFP_NOFS);
>> + if (item == NULL) {
>> + ret = -ENOMEM;
>> + mlog_errno(ret);
>> + return ret;
>> + }
>> +
>> + mlog(0, "Insert clusters: (bit %u, blk %llu)\n",
>> + bit, (unsigned long long)blkno);
>> +
>> + item->free_blk = blkno;
>> + item->free_bit = bit;
>> + item->free_next = ctxt->c_clusters_list;
>
> You need to push item on to the list too.
>
> + ctxt->c_clusters_list = item;
yeah, this is obviously a bug. thanks.
>
>> +
>> + return ret;
>> +}
>> +
>> +static int ocfs2_free_clusters_list(struct ocfs2_super *osb,
>> + struct ocfs2_cached_block_free *head)
>
> Call this 'ocfs2_free_cached_clusters' and change
> 'ocfs2_free_cached_items' to 'ocfs2_free_cached_blocks'.
>
>> +{
>> + struct ocfs2_cached_block_free *tmp;
>> + struct inode *tl_inode = osb->osb_tl_inode;
>> + handle_t *handle;
>> + int ret = 0;
>> +
>> + mutex_lock(&tl_inode->i_mutex);
>> +
>> + handle = ocfs2_start_trans(osb, OCFS2_TRUNCATE_LOG_UPDATE);
>> + if (IS_ERR(handle)) {
>> + ret = PTR_ERR(handle);
>> + mlog_errno(ret);
>> + goto out_mutex;
>> + }
>> +
>> + while (head) {
>> + ret = ocfs2_truncate_log_append(osb, handle, head->free_blk,
>> + head->free_bit);
>> + if (ret) {
>> + mlog_errno(ret);
>> + break;
>> + }
>
> What happens if the truncate log fills up?
currently, it is only used in one xattr set. So the total size is only
64K bytes and I don't think the chance is very high. I have also gone
through ocfs2_commit_truncate, no error handler there, and even if it is
filled up and error out, fsck should be able to find them. But you are
probably right, if in future we use it in truncating file, it may be a
very high risk. But it could be in another separate patch, agree?
btw, I will fix other typos according to your advice, thanks.
Regards,
Tao
next prev parent reply other threads:[~2008-11-04 1:34 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-30 11:31 [Ocfs2-devel] [PATCH 00/15] ocfs2: add security EA and ACL support V4 Tiger Yang
2008-10-30 5:42 ` [Ocfs2-devel] [PATCH 01/15] ocfs2/xattr: Only extend xattr bucket in need Tao Ma
2008-11-06 19:45 ` Mark Fasheh
2008-11-07 1:05 ` Tao Ma
2008-10-30 5:42 ` [Ocfs2-devel] [PATCH 02/15] ocfs2: Add clusters free in dealloc_ctxt Tao Ma
2008-11-04 1:16 ` Joel Becker
2008-11-04 1:34 ` Tao Ma [this message]
2008-11-04 3:01 ` Joel Becker
2008-11-04 3:07 ` Tao Ma
2008-11-04 7:40 ` Joel Becker
2008-11-04 23:25 ` [Ocfs2-devel] [PATCH 02/15] ocfs2: Add clusters free in dealloc_ctxt.v2 Tao Ma
2008-11-05 22:25 ` Joel Becker
2008-11-06 6:08 ` Tao Ma
2008-10-30 5:42 ` [Ocfs2-devel] [PATCH 03/15] ocfs2/xattr: Move clusters free into dealloc Tao Ma
2008-11-04 3:17 ` Joel Becker
2008-10-30 5:42 ` [Ocfs2-devel] [PATCH 04/15] ocfs2/xattr: Reserve meta/data at the beginning of ocfs2_xattr_set Tao Ma
2008-11-07 0:11 ` Mark Fasheh
2008-11-07 1:10 ` Tao Ma
2008-10-30 5:42 ` [Ocfs2-devel] [PATCH 05/15] ocfs2/xattr: Merge xattr set transaction Tao Ma
2008-11-07 22:46 ` Joel Becker
2008-10-30 11:40 ` [Ocfs2-devel] [PATCH 06/15] ocfs2: move new_inode out of the transaction Tiger Yang
2008-11-07 1:02 ` Mark Fasheh
2008-10-30 11:40 ` [Ocfs2-devel] [PATCH 07/15] ocfs2: add ocfs2_xattr_set_handle Tiger Yang
2008-11-07 1:03 ` Mark Fasheh
2008-10-30 11:40 ` [Ocfs2-devel] [PATCH 08/15] ocfs2: add security xattr API Tiger Yang
2008-11-07 1:17 ` Mark Fasheh
2008-11-07 1:17 ` Mark Fasheh
2008-10-30 11:41 ` [Ocfs2-devel] [PATCH 09/15] ocfs2: add ocfs2_init_security in mkno Tiger Yang
2008-10-30 11:41 ` [Ocfs2-devel] [PATCH 10/15] ocfs2: add ocfs2_xattr_get_nolock Tiger Yang
2008-10-30 11:41 ` [Ocfs2-devel] [PATCH 11/15] ocfs2: add POSIX ACL API Tiger Yang
2008-11-07 1:26 ` Mark Fasheh
2008-10-30 11:41 ` [Ocfs2-devel] [PATCH 12/15] ocfs2: add ocfs2_check_acl Tiger Yang
2008-10-30 11:42 ` [Ocfs2-devel] [PATCH 13/15] ocfs2: add ocfs2_acl_chmod Tiger Yang
2008-11-07 1:33 ` Mark Fasheh
2008-10-30 11:42 ` [Ocfs2-devel] [PATCH 14/15] ocfs2: add ocfs2_init_acl in mknod Tiger Yang
2008-10-30 11:42 ` [Ocfs2-devel] [PATCH 15/15] ocfs2: add mount option and Kconfig option for acl Tiger Yang
2008-10-30 13:45 ` [Ocfs2-devel] [PATCH 00/15] ocfs2: add security EA and ACL support V4 Tao Ma
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=490FA6B0.5010303@oracle.com \
--to=tao.ma@oracle.com \
--cc=ocfs2-devel@oss.oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.