From mboxrd@z Thu Jan 1 00:00:00 1970 From: rpeterso@sourceware.org Date: 13 Oct 2006 19:57:08 -0000 Subject: [Cluster-devel] cluster/gfs-kernel/src/gfs ops_export.c super. ... Message-ID: <20061013195708.30620.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: cluster Changes by: rpeterso at sourceware.org 2006-10-13 19:57:07 Modified files: gfs-kernel/src/gfs: ops_export.c super.c super.h Log message: This is the fix for bugzilla bug 210587: Oops in gfs_get_dentry via NFS. The gfs file system, when called by NFS, was sometimes referencing the vestigial license file, causing the segfault. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/ops_export.c.diff?cvsroot=cluster&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/super.c.diff?cvsroot=cluster&r1=1.21&r2=1.22 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/super.h.diff?cvsroot=cluster&r1=1.3&r2=1.4 --- cluster/gfs-kernel/src/gfs/ops_export.c 2006/07/10 23:22:34 1.7 +++ cluster/gfs-kernel/src/gfs/ops_export.c 2006/10/13 19:57:07 1.8 @@ -309,8 +309,7 @@ if (!cookie->formal_ino || cookie->formal_ino == sdp->sd_jiinode->i_num.no_formal_ino || cookie->formal_ino == sdp->sd_riinode->i_num.no_formal_ino || - cookie->formal_ino == sdp->sd_qinode->i_num.no_formal_ino || - cookie->formal_ino == sdp->sd_linode->i_num.no_formal_ino) + cookie->formal_ino == sdp->sd_qinode->i_num.no_formal_ino) return ERR_PTR(-EINVAL); inum.no_formal_ino = cookie->formal_ino; --- cluster/gfs-kernel/src/gfs/super.c 2006/08/09 20:28:51 1.21 +++ cluster/gfs-kernel/src/gfs/super.c 2006/10/13 19:57:07 1.22 @@ -651,45 +651,6 @@ } /** - * gfs_get_linode - Read in the special (hidden) license inode - * @sdp: The GFS superblock - * - * If one is not on-disk already, create a new one. - * Does not read in file contents, just the dinode. - * - * Returns: errno - */ - -int -gfs_get_linode(struct gfs_sbd *sdp) -{ - struct gfs_holder i_gh; - int error; - - /* Create, if not on-disk already */ - if (!sdp->sd_sb.sb_license_di.no_formal_ino) { - error = gfs_alloc_linode(sdp); - if (error) - return error; - } - - error = gfs_glock_nq_num(sdp, - sdp->sd_sb.sb_license_di.no_formal_ino, - &gfs_inode_glops, - LM_ST_SHARED, GL_LOCAL_EXCL, - &i_gh); - if (error) - return error; - - error = gfs_inode_get(i_gh.gh_gl, &sdp->sd_sb.sb_license_di, - CREATE, &sdp->sd_linode); - - gfs_glock_dq_uninit(&i_gh); - - return error; -} - -/** * gfs_make_fs_rw - Turn a Read-Only FS into a Read-Write one * @sdp: the filesystem * --- cluster/gfs-kernel/src/gfs/super.h 2006/07/10 23:22:34 1.3 +++ cluster/gfs-kernel/src/gfs/super.h 2006/10/13 19:57:07 1.4 @@ -37,7 +37,6 @@ int gfs_get_riinode(struct gfs_sbd *sdp); int gfs_get_rootinode(struct gfs_sbd *sdp); int gfs_get_qinode(struct gfs_sbd *sdp); -int gfs_get_linode(struct gfs_sbd *sdp); int gfs_make_fs_rw(struct gfs_sbd *sdp); int gfs_make_fs_ro(struct gfs_sbd *sdp);