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,...