search for: i_ino

Displaying 20 results from an estimated 60 matches for "i_ino".

Did you mean: i_info
2010 Dec 16
2
[BUG?] There is a possibility that 'i_ino' overflows
Hi, In btrfs, inode number is increased each time a new file or directory is made. Therefore, if the making deletion of the file is repeated, value of ''i_ino'' increases rapidly. For example, inode number changes as follows. $ touch foo $ ls -i foo 266 foo $ rm foo $ touch bar $ ls -i bar 267 bar $ And then, length of ''i_ino'' and ''objectid'' is as follows on the x86 system. unsigned long...
2006 Oct 31
3
ocfs2 error messages
I received the following error messages in the system logs. Is this anything to be concerned with? kernel: (4074,0):ocfs2_populate_inode:234 ERROR: Invalid dinode: i_ino=1293597, i_blkno=1293597, signature = INODE01, flags = 0x0 kernel: (4074,0):ocfs2_read_locked_inode:389 ERROR: populate inode failed! i_blkno=1293597, i_ino=1293597 kernel: (4074,0):ocfs2_iget:131 ERROR: status = -116 kernel: (4074,0):ocfs2_iget:141 ERROR: status = -116 kernel: (4074,0):ocfs2_g...
2009 Nov 12
0
[PATCH 03/12] Btrfs: Rewrite btrfs_drop_extents
...ow; int ret; - inline_limit = 0; if (drop_cache) btrfs_drop_extent_cache(inode, start, end - 1, 0); path = btrfs_alloc_path(); if (!path) return -ENOMEM; + while (1) { recow = 0; - btrfs_release_path(root, path); ret = btrfs_lookup_file_extent(trans, root, path, inode->i_ino, search_start, -1); if (ret < 0) - goto out; - if (ret > 0) { - if (path->slots[0] == 0) { - ret = 0; - goto out; - } - path->slots[0]--; + break; + if (ret > 0 && path->slots[0] > 0 && search_start == start) { + leaf = path-&...
2008 Jun 24
1
[RFC][PATCH] btrfs orphan code
...y disk_key; + struct btrfs_dir_item *dir_item; + struct btrfs_path *path; + struct btrfs_key key; + struct extent_buffer *leaf; + unsigned long name_ptr; + const char *name = ".orphandir"; + int name_len = strlen(name); + int ret = 0; + u32 data_size; + + key.objectid = root->inode->i_ino; + btrfs_set_key_type(&key, BTRFS_ORPHAN_DIR_ITEM_KEY); + key.offset = btrfs_name_hash(name, name_len); + path = btrfs_alloc_path(); + data_size = sizeof(*dir_item) + name_len; + dir_item = insert_with_overflow(trans, root, path, &key, + data_size, name, name_len); + if (IS_ERR(dir_item...
2010 Nov 17
0
[PATCH] Btrfs: handle NFS lookups properly
..._buffer *leaf; + unsigned long name_ptr; + struct btrfs_key key; + int name_len; + int ret; + + if (!dir || !inode) + return -EINVAL; + + if (!S_ISDIR(dir->i_mode)) + return -EINVAL; + + path = btrfs_alloc_path(); + if (!path) + return -ENOMEM; + path->leave_spinning = 1; + + if (inode->i_ino == BTRFS_FIRST_FREE_OBJECTID) { + key.objectid = BTRFS_I(inode)->root->root_key.objectid; + key.type = BTRFS_ROOT_BACKREF_KEY; + key.offset = (u64)-1; + root = root->fs_info->tree_root; + } else { + key.objectid = inode->i_ino; + key.offset = dir->i_ino; + key.type = BTRFS_...
2023 Jan 18
9
remove most callers of write_one_page v3
Hi all, this series removes most users of the write_one_page API. These helpers internally call ->writepage which we are gradually removing from the kernel. Changes since v2: - more minix error handling fixes Changes since v1: - drop the btrfs changes (queue up in the btrfs tree) - drop the finaly move to jfs (can't be done without the btrfs patches) - fix the existing minix code to
2008 Aug 20
1
Weird messages at kernel.log
> Hi all! > > I've just configured a new 2 node cluster and I found messages at > kernel.log like the following: > > Aug 19 19:34:58 nodo1 kernel: (2821,0):ocfs2_populate_inode:236 ERROR: > Invalid dinode: i_ino=9311700, i_blkno=9311700, signature = INODE01, flags > = 0x0 > Aug 19 19:34:58 nodo1 kernel: (2821,0):ocfs2_read_locked_inode:393 ERROR: > populate failed! i_blkno=9311700, i_ino=9311700 > Aug 19 19:34:58 nodo1 kernel: (2821,0):ocfs2_iget:131 ERROR: status = -116 > Aug 19 19:34:58 no...
2009 Aug 21
0
[GIT PULL] btrfs rb corruption fix
...; + struct rb_node *parent; + +again: + p = &root->inode_tree.rb_node; + parent = NULL; spin_lock(&root->inode_lock); while (*p) { @@ -3108,13 +3112,16 @@ static void inode_tree_add(struct inode *inode) entry = rb_entry(parent, struct btrfs_inode, rb_node); if (inode->i_ino < entry->vfs_inode.i_ino) - p = &(*p)->rb_left; + p = &parent->rb_left; else if (inode->i_ino > entry->vfs_inode.i_ino) - p = &(*p)->rb_right; + p = &parent->rb_right; else { WARN_ON(!(entry->vfs_inode.i_state & (I_WILL_FREE...
2011 Jan 06
3
Offline Deduplication for Btrfs V2
Just a quick update, I''ve dropped the hashing stuff in favor of doing a memcmp in the kernel to make sure the data is still the same. The thing that takes a while is reading the data up from disk, so doing a memcmp of the entire buffer isn''t that big of a deal, not to mention there''s a possiblity for malicious users if there is a problem with the hashing algorithms we
2011 May 27
0
[PATCH] Btrfs: try to only do one btrfs_search_slot in do_setxattr
....c index 72ab029..4857a87 100644 --- a/fs/btrfs/xattr.c +++ b/fs/btrfs/xattr.c @@ -102,43 +102,41 @@ static int do_setxattr(struct btrfs_trans_handle *trans, if (!path) return -ENOMEM; - /* first lets see if we already have this xattr */ - di = btrfs_lookup_xattr(trans, root, path, inode->i_ino, name, - strlen(name), -1); - if (IS_ERR(di)) { - ret = PTR_ERR(di); - goto out; - } - - /* ok we already have this xattr, lets remove it */ - if (di) { - /* if we want create only exit */ - if (flags & XATTR_CREATE) { - ret = -EEXIST; + if (flags & XATTR_REPLACE) { + di = btrfs_l...
2013 Mar 02
0
[GIT-PULL] ext4 inline data support
...-156,6 +156,7 @@ static void fill_inode(struct inode *inode, const struct ext2_inode *e_inode) inode->flags = e_inode->i_flags; inode->file_acl = e_inode->i_file_acl; memcpy(PVT(inode)->i_block, e_inode->i_block, sizeof PVT(inode)->i_block); + PVT(inode)->i_ino = inr; } static struct inode *ext2_iget_by_inr(struct fs_info *fs, uint32_t inr) @@ -169,11 +170,32 @@ static struct inode *ext2_iget_by_inr(struct fs_info *fs, uint32_t inr) if (!(inode = alloc_inode(fs, inr, sizeof(struct ext2_pvt_inode)))) return NULL; - fill_inode(inode, e_inode...
2001 Mar 23
0
[linux-lvm] EXT2-fs panic (device lvm(58,0)):
...======================================================================= diff -ru linux-2.4.3p6/fs/affs/inode.c linux-2.4.3p6-aed/fs/affs/inode.c --- linux-2.4.3p6/fs/affs/inode.c Wed Feb 21 19:09:45 2001 +++ linux-2.4.3p6-aed/fs/affs/inode.c Fri Mar 23 01:11:52 2001 @@ -324,14 +324,8 @@ inode->i_ino = block; inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; - inode->u.affs_i.i_original = 0; + /* The inode->u struct is zeroed for us by new_inode() */ inode->u.affs_i.i_parent = dir->i_ino; - inode->u.affs_i.i_zone = 0; - inode->u.aff...
2008 Jul 20
26
[PATCH] NFS support for btrfs - v2
...inode; + struct inode *inode; + struct dentry *parent; + struct btrfs_root *root = BTRFS_I(dir)->root; + struct btrfs_key key; + struct btrfs_path *path; + struct extent_buffer *leaf; + u32 nritems; + int slot; + u64 objectid; + int ret; + + path = btrfs_alloc_path(); + + key.objectid = dir->i_ino; + btrfs_set_key_type(&key, BTRFS_INODE_REF_KEY); + key.offset = 0; + ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); + BUG_ON(ret == 0); + ret = 0; + + leaf = path->nodes[0]; + slot = path->slots[0]; + nritems = btrfs_header_nritems(leaf); + if (slot >= nritems) { + goto o...
2008 Oct 27
0
[PATCH 3/4] update nodatacow code
...ocow; + int check_prev = 1; - total_fs_bytes = btrfs_super_total_bytes(&root->fs_info->super_copy); path = btrfs_alloc_path(); BUG_ON(!path); trans = btrfs_join_transaction(root, 1); BUG_ON(!trans); -again: - ret = btrfs_lookup_file_extent(NULL, root, path, - inode->i_ino, start, 0); - if (ret < 0) { - err = ret; - goto out; - } - - if (ret != 0) { - if (path->slots[0] == 0) - goto not_found; - path->slots[0]--; - } - - leaf = path->nodes[0]; - item = btrfs_item_ptr(leaf, path->slots[0], - struct btrfs_file_extent_item); - - /* are we in...
2011 Aug 17
2
[PATCH] btrfs: fix d_off in the first dirent
...+4125,8 @@ static int btrfs_real_readdir(struct file *filp, void *dirent, /* special case for "." */ if (filp->f_pos == 0) { - over = filldir(dirent, ".", 1, 1, btrfs_ino(inode), DT_DIR); + over = filldir(dirent, ".", 1, + filp->f_pos, inode->i_ino, DT_DIR); if (over) return 0; filp->f_pos = 1; @@ -4134,7 +4135,7 @@ static int btrfs_real_readdir(struct file *filp, void *dirent, if (filp->f_pos == 1) { u64 pino = parent_ino(filp->f_path.dentry); over = filldir(dirent, "..", 2, - 2, pino, DT_DIR); +...
2010 Sep 03
0
[PATCH 1/2] btrfs: document where we use BUG_ON instead of error handling
...r > 0) { ret = btrfs_del_items(trans, root, path, del_slot, del_nr); - BUG_ON(ret); + btrfs_fixable_bug_on(ret); } btrfs_free_path(path); @@ -685,7 +685,7 @@ again: ret = btrfs_inc_extent_ref(trans, root, bytenr, num_bytes, 0, root->root_key.objectid, inode->i_ino, orig_offset); - BUG_ON(ret); + btrfs_fixable_bug_on(ret); if (split == start) { key.offset = start; @@ -712,7 +712,7 @@ again: ret = btrfs_free_extent(trans, root, bytenr, num_bytes, 0, root->root_key.objectid, inode->i_ino, orig_offset); - BUG_ON(ret); + btrfs_fi...
2006 Dec 29
3
[git patches] ocfs2 fixes
Hi Linus, Here are some 2.6.20 fixes for ocfs2. The patch by Zhen Wei isn't really a fix, but a very small amount of support for a feature which is mostly implemented in ocfs2-tools. Considering it's just a single attribute export via configfs, I'd say it's pretty safe to merge. Please pull from 'upstream-linus' branch of
2011 Apr 19
2
ocfs or configfs bug ?
Hi all, I have a bug with OCFS through configfs : to illustrate this, try : while true ; do ls -l /sys/kernel/config/cluster/ocfs2/heartbeat ; done& while true ; do echo 31> /sys/kernel/config/cluster/ocfs2/heartbeat/dead_threshold ; done& So, I have a kernel crash : BUG: unable to handle kernel NULL pointer dereference at 0000000000000040 IP: [<ffffffffa01fd214>]
2011 Apr 19
2
ocfs or configfs bug ?
Hi all, I have a bug with OCFS through configfs : to illustrate this, try : while true ; do ls -l /sys/kernel/config/cluster/ocfs2/heartbeat ; done& while true ; do echo 31> /sys/kernel/config/cluster/ocfs2/heartbeat/dead_threshold ; done& So, I have a kernel crash : BUG: unable to handle kernel NULL pointer dereference at 0000000000000040 IP: [<ffffffffa01fd214>]
2009 Nov 12
0
[PATCH 05/12] Btrfs: Avoid orphan inodes cleanup during replaying log
...ead of adding @@ -997,9 +1008,13 @@ static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans, } BTRFS_I(inode)->index_cnt = (u64)-1; - if (inode->i_nlink == 0 && S_ISDIR(inode->i_mode)) { - ret = replay_dir_deletes(trans, root, NULL, path, - inode->i_ino, 1); + if (inode->i_nlink == 0) { + if (S_ISDIR(inode->i_mode)) { + ret = replay_dir_deletes(trans, root, NULL, path, + inode->i_ino, 1); + BUG_ON(ret); + } + ret = insert_orphan_item(trans, root, inode->i_ino); BUG_ON(ret); } btrfs_free_path(path); @@ -1587,7 +1602,...