SEARCH  

NEWS

2010.10.06:11:36:28
Płatność kartą chroni przed upadłością biura podróży?
Aby uchronić się przed utratą pieniędzy wpłaconych na poczet przyszłej wycieczki, najlepiej zapłacić kartą płatniczą. W przypadku upadłości biura podróży i odwołania imprezy można złożyć reklamację w banku i powołać się na nieotrzymanie opłaconej usługi. W ten sposób odzyskamy swoje pieniądze, co może nie być takie proste, jeśli zapłacimy gotówką.

 

messageID:522560007132
author:Josef Jeff Sipek
title: PATCH 14 32 Unionfs file revalidate update
From: Erez Zadok <ezk@xxxxxxxxxxxxx Correctly revalidate a file and account for lower mnts, even when branches are updated or inserted. Better info upon file copyup. Signed-off-by: Erez Zadok <ezk@xxxxxxxxxxxxx Signed-off-by: Josef Jeff Sipek <jsipek@xxxxxxxxxxxxx --- fs/unionfs/commonfops.c | 25 +++++++++++++++++++++---- 1 files changed, 21 insertions(+), 4 deletions(-) diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c index 64bd0bd..612207a 100644 --- a/fs/unionfs/commonfops.c +++ b/fs/unionfs/commonfops.c @@ -333,6 +333,9 @@ int unionfs_file_revalidate(struct file *file, int willwrite) */ if (!d_deleted(dentry) && (sbgen fgen || dbstart(dentry) != fbstart(file))) { + /* save orig branch ID */ + int orig_brid = UNIONFS_F(file)- saved_branch_ids[fbstart(file)]; + /* First we throw out the existing files. */ cleanup_file(file); @@ -359,22 +362,36 @@ int unionfs_file_revalidate(struct file *file, int willwrite) if (err) goto out; } else { + int new_brid; /* We only open the highest priority branch. */ err = open_highest_file(file, willwrite); if (err) goto out; + new_brid = UNIONFS_F(file)- + saved_branch_ids[fbstart(file)]; + if (new_brid != orig_brid && sbgen fgen) { + /* + * If we re-opened the file on a different + * branch than the original one, and this + * was due to a new branch inserted, then + * update the mnt counts of the old and new + * branches accordingly. + */ + unionfs_mntget(dentry, bstart); + unionfs_mntput(sb- s_root, + branch_id_to_idx(sb, orig_brid)); + } } atomic_set(&UNIONFS_F(file)- generation, - atomic_read(&UNIONFS_I(dentry- d_inode)- - generation)); + atomic_read(&UNIONFS_I(dentry- d_inode)- generation)); } /* Copyup on the first write to a file on a readonly branch. */ if (willwrite && IS_WRITE_FLAG(file- f_flags) && !IS_WRITE_FLAG(unionfs_lower_file(file)- f_flags) && is_robranch(dentry)) { - printk(KERN_DEBUG "unionfs: Doing delayed copyup of a " - "read-write file on a read-only branch. "); + printk(KERN_DEBUG "unionfs: do delay copyup of "%s" ", + dentry- d_name.name); err = do_delayed_copyup(file); } -- 1.5.2.2.238.g7cbf2f2 - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at rel="nofollow" vger.kernel.org/majordomo-info.html vger.kernel.org/majordomo-info.html
Index